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 を使用して動的に生成されるテーブルの詳細な説明

推薦する

MySQLでよく使われる文字列関数トップ10の詳細な説明

こんにちは、みんな!技術の話ばかりで髪は切らないトニーです。データベース関数は、何らかの機能を持ち、...

Javascript実践におけるコマンドモードの詳しい説明

目次意味構造例カスタムショートカットキー元に戻すとやり直し録音と再生マクロ要約する意味リクエストをオ...

Angularルーティングの基礎の詳細な説明

目次1. ルーティング関連オブジェクト2. ルーティングオブジェクトの場所3. ルーティング構成4....

Nginx の add_header ディレクティブに注意する必要があるのはなぜですか?

序文ご存知のとおり、nginx 構成ファイルは add_header ディレクティブを使用して応答ヘ...

MySQLのあいまいクエリインデックスの失敗の問題を解決するいくつかの方法

% ワイルドカードを使用すると、インデックス失敗の問題が発生することがよくあります。ここでは、lik...

CSS3 は反転可能なホバー効果を実現します

CSS3 は反転可能なホバー効果を実装します。具体的なコードは次のとおりです。 1.css /*基本...

Vue2.0でデータの双方向バインディング機能をjsを使って実装する

Object.definePropertyの理解文法:オブジェクト.defineProperty(o...

JavaScript配列の簡単な紹介

目次配列の紹介配列リテラル2次元配列要約する配列の紹介配列- Arrayもオブジェクトですこれは通常...

JavaScript Sandboxについての簡単な説明

序文:サンドボックスといえば、私たちの頭には反射的に上の写真が思い浮かび、すぐに興味がわいてくるかも...

CSS 画面サイズ適応実装例

CSS 画面サイズの適応を実現するには、まず CSS3 @media メディア クエリを導入する必要...

MySQLのグローバルロックとテーブルロックに関する詳細な理解

序文ロックの範囲に応じて、MySQL のロックは、グローバル ロック、テーブル ロック、行ロックに大...

protobuf の簡単な紹介と Ubuntu 16.04 環境でのインストールチュートリアル

protobufの簡単な紹介Protobuf は、Google のオープンソースのシリアル化プロトコ...

Docker は次の「Linux」になれるか?

Linux オペレーティング システムは過去 20 年間にわたってデータ センターに革命をもたらし...

HTML における DTD の使用法の概要

DTD はマークアップの文法規則のセットです。これは XML 1.0 仕様の一部であり、HTML フ...

HTML/CSS での空白処理とページ内の空白を保持する方法

HTML の空白ルールHTML では、コンテンツ内の複数のスペースは通常 1 つとみなされ、連続する...