MySQL でのバイナリ型操作

MySQL でのバイナリ型操作

この記事は主にMySQLデータベースのバイナリ型操作を紹介し、具体的な内容を通して紹介します。MySQLデータベースの学習に役立つことを願っています。

サンプルデータテーブル:

テーブルtest_binを作成します(
  bin_id バイナリ(16) NULLではない
) エンジン=InnoDB; 
 

データを挿入します (内容は 32 ビットの UUID 文字列値です):

test_bin(bin_id) に値(UNHEX('FA34E10293CB42848573A4E39937F479'))を挿入します。

test_bin(bin_id) に VALUES(UNHEX(?)) を挿入します。

または

test_bin(bin_id) に値(x'FA34E10293CB42848573A4E39937F479')を挿入します。

クエリデータ:

HEX(bin_id) を bin_id として test_bin から選択します。
 
HEX(bin_id) を bin_id として選択し、test_bin から bin_id を取得します。WHERE bin_id = UNHEX('FA34E10293CB42848573A4E39937F479');
HEX(bin_id) を bin_id として選択し、test_bin から bin_id を取得します。WHERE bin_id = UNHEX(?);
 
HEX(bin_id) を bin_id として選択し、test_bin から bin_id を取得します。ここで、bin_id = x'FA34E10293CB42848573A4E39937F479' です。

クエリ結果:

ビンID

--------------------------

FA34E10293CB42848573A4E39937F479

注: MySQL 組み込みの UUID() を使用して、BINARY(16) 型の UUID 値を返す関数を作成します。

CREATE FUNCTION uu_id() は binary(16) を返します。 RETURN UNHEX(REPLACE(UUID(),'-',''));

または

CREATE FUNCTION uu_id() は binary(16) を返します。 RETURN UNHEX(REVERSE(REPLACE(UUID(),'-','')));

使用:

test_bin(bin_id) に VALUES(uu_id()) を挿入します。

例1:

接続 conn = null;
 ステートメント stat = null;
 結果セット rs = null;
 試す {
  接続 = JDBCUtils.getConnection(マップ);
  文字列 sql = "jyyt から HEX(RECID) AS recid、STDNAME AS stdname、HEX(RESID) AS resid を選択";
  stat = conn.createStatement();
  rs = stat.executeQuery(sql);
  (rs.next()) の間 {
  文字列 recid = rs.getString("recid");
  文字列 staname = rs.getString("stdname");
  文字列 resid = rs.getString("resid");
  System.out.println(recid + "---" + staname + "---" + resid);
  }
 } キャッチ (SQLException e) {
  e.printStackTrace();
 ついに
  JDBCUtils.closeConnection(conn, stat, rs);
 }

例2:

選択
 y.UNITID AS ユニットID、
 y.UNITNAME AS ユニット名、
 y.WARNINGTYPE 警告タイプとして 
から
 GXJT_YJ AS y
 md_org を m として LEFT JOIN し、 m.RECID = y.UNITID にします。
 PMS_COMPANY_INFO を p として m.RECID = p.UNITID に左結合します。 
どこ
 HEX(m.parents) は '%66F7B47C80000101D5E8ABF15CD9DA73%' のように 
y.WARNINGTYPE = 'REGISTRATION_DIFFERENT' の場合

HEX() 関数は使用されません:

HEX() 関数を使用します。

補足知識: [MySQL] Navicat を使用して MySQL データベース内の varbinary 変数の内容を表示するにはどうすればいいですか?

環境

Navicat ソフトウェア バージョン: Navicat プレミアム 11.1.13 (64 ビット)

MySQL データベース バージョン: 5.7

問題

タイトル通りです。

ステップ

解決策は簡単です、メモ。

1. データベース テーブルの設計は次のとおりです。テーブル内の photo 変数の型は varbinary です。

2. Navicat ソフトウェアでは、以下のように文字化けした文字が表示されます。

3. 「名前を付けてデータを保存」を右クリックし、1.txt として保存します。ファイル名は任意です。

4. UEで開くと、以下のように表示されます。

MySQL でのバイナリ型の使用に関する上記の記事は、編集者が皆さんと共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MYSQL設定パラメータの最適化の詳細な説明
  • MySqlデータベースをバックアップするいくつかの方法
  • MySQLクエリステートメントの最適化スキル

<<:  Dockerコンテナ監視の原理とcAdvisorのインストールおよび使用方法

>>:  JavaScript を使用して動的に生成されるテーブルの詳細な説明

推薦する

1 つの記事で Nginx の現在の制限を理解する (簡単な実装)

Nginx は現在、最も人気のあるロード バランサーの 1 つです。インターネット トラフィックの...

vue3 のさまざまな構文形式を比較したサンプルコード

デフォルトのテンプレートメソッドはvue2に似ており、コンポーネント内のセットアップ関数を使用します...

MySQLカバーインデックスの詳しい説明

コンセプトインデックスにクエリ要件を満たすすべてのデータが含まれている場合、それはカバーリング イン...

HTML内の画像はbase64でエンコードされた文字列に直接置き換えられます

最近、画像はあるのに外部画像リソースが参照されていないウェブページを見つけました。気になりました。コ...

Vueは開始時間と終了時間の範囲クエリを実装します

この記事では、Vueで開始時間と終了時間の範囲を照会する方法を参考までに紹介します。具体的な内容は次...

MySQL 5.6 マスタースレーブエラー報告の実践記録

1. 問題の症状バージョン: MySQL 5.6、従来の binlog ファイルと pos 方式を使...

大きな MySQL テーブルに列を追加する方法

質問は https://www.zhihu.com/question/440231149 から参照さ...

Dockerコンテナを停止および削除できない問題の解決策

実行中のコンテナIDを見つける ドッカーps上記のコンテナの物理的な場所を見つける /var/lib...

Vue 画像切り抜きコンポーネントのサンプルコード

例:ヒント:このコンポーネントはvue-cropperの二次パッケージに基づいていますプラグインをイ...

Dockerイメージの作成、アップロード、プル、デプロイを理解するための記事

目次1. 画像1. 鏡とは何ですか? 2. 画像の構成と目的(1) Dockerファイル(2)スクラ...

Linux ソースコードからのソケット (TCP) クライアント側での接続の例の詳細な説明

序文著者は、アプリケーションからフレームワーク、オペレーティング システムに至るまで、あらゆるコード...

Vue+tsx のスロット使用の問題が置き換えられない

目次序文問題を見つける解決する追記序文最近、 UIコンポーネントを作成する予定で、 vue 2.xと...

Vue3 プロジェクトで WeChat 認証ログインをエレガントに実装する方法

目次序文準備する実装のアイデアコードについて要約する序文WeChat 認証ログインは、WeChat ...

MySQL 8.0はJSONを扱えるようになりました

目次1. 概要2. JSON基本ツール3. JSONパス式4. JSONを検索して変更する序文:長い...

WebpackはCSSファイルを読み込み、その設定方法

webpackはCSSファイルとその設定をロードします複数の CSS ファイルを作成した後、HTML...