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

推薦する

React で遅延読み込みを使用して最初の画面の読み込み時間を短縮する方法

目次使用インストールルーティングでどのように使用しますか?読み込み速度の比較最近、中間およびバックエ...

js クロージャとガベージ コレクション メカニズムの例の詳細な説明

目次序文文章1. 終了1.1 クロージャとは何ですか? 1.2 クロージャの特性1.3 クロージャを...

Vue で PC アドレスをモバイル アドレスにリダイレクトする方法

要件:PC側とモバイル側は2つの独立したプロジェクトです。2つのプロジェクトの内容は基本的に同じで、...

スライド効果を実現するためのネイティブJavaScript

ページ、特にホームページを作成するときは、通常、Web サイト全体の他のメイン ページにリンクできる...

vuexの強制リフレッシュによるデータ損失問題の分析

vuex 永続状態基本原則: すべての vuex データをローカルストレージに保存し、ページが更新さ...

プレーヤー機能を実現するためのvue + element uiのサンプルコード

効果画像のない表示は単なる空虚な言葉です。 1. オーディオをベースにし、elementUI と組み...

JavaScriptでよく使われる配列重複排除実戦ソースコード

アレイの重複排除は、通常、就職面接中に遭遇し、アレイの重複排除方法のコードを手動で記述することが求め...

JS、CSS スタイルのリファレンスの記述

CS: ... 1. <link type="text/css" href...

CSS最適化スキルの自己実践体験

1. CSS スプライトを使用します。利点は、CSS で使用される小さな画像を 1 つの大きな画像に...

ページにデータを表示するReactメソッド

目次親コンポーネントリストボックスリストコンポーネントボタンコンポーネント PageButton昨年...

Zabbixについて管理者ログインパスワードを忘れた場合、パスワードをリセットする

Zabbix 管理者ログイン パスワードのリセットに関する問題は次のとおりです。 1. 問題の説明:...

MySQL 8.x msi バージョンのインストール チュートリアル (画像とテキスト付き)

1. MySQLをダウンロードする公式サイトのダウンロードアドレス https://dev.mys...

Vueユーザーが長時間操作せずにログインページからログアウトするように実装する2つの方法

目次問題の説明フロントエンド制御(方法1)アイデアコードバックエンド制御(方法2)アイデアコード要約...

MySQL 8.0.11 MacOS 10.13 のインストールと設定方法のグラフィックチュートリアル

MacにMySQLデータベースをインストールし、環境変数を設定する手順を参考までに記録します。具体的...

JavaScript でピンボール ゲームの Web バージョンを実装する

参考までに、JavaScriptのオブジェクトとメソッドを使用して実装されたWebピンボールゲームを...