序文 BINARY と VARBINARY は、文字列ではなくバイナリ文字列を格納する点を除いて、CHAR 型と VARCHAR 型に似ています。つまり、BINARY と VARBINARY には文字セットの概念がなく、並べ替えや比較はすべてバイナリ値に基づいて行われます。 次の例を見てみましょう。 mysql> テーブル t を作成します ( -> バイナリ(1) ->)ENGINE=InnoDB CHARSET=GBK; クエリは正常、影響を受けた行は 0 行 (0.02 秒) mysql> 名前を設定する GBK; クエリは正常、影響を受けた行は 0 行 (0.00 秒) MySQL> INSERT INTO t SELECT 'i'; クエリは正常、1 行が影響を受け、1 つの警告 (0.01 秒) 記録: 1 重複: 0 警告: 1 mysql> 警告を表示\G; ************************** 1. 行 **************************** レベル: 警告 コード: 1265 メッセージ: 行 1 の列 'a' のデータが切り捨てられました セット内の 1 行 (0.00 秒) mysql> SELECT a,HEX(a) FROM t\G; ************************** 1. 行 **************************** あ: 16進数(a): CE テーブル t には mysql> テーブル t を作成します ( -> CHAR(1) ->)ENGINE=InnoDB CHARSET=GBK; クエリは正常、影響を受けた行は 0 行 (0.02 秒) mysql> INSERT INTO t SELECT 'I'; クエリは正常、1 行が影響を受け、1 つの警告 (0.01 秒) 記録: 1 重複: 0 警告: 0 mysql> SELECT a,HEX(a) FROM t\G; ************************** 1. 行 **************************** a: I 16進数 (a): CED2 セット内の 1 行 (0.00 秒) BINARY と VARBINARY を CHAR と VARCHAR と比較した場合の最初の違いは、 mysql> 選択 -> HEX('a')、 -> HEX('a ')、 -> 'a' = 'a '\G; ************************** 1. 行 **************************** 16進数('a'): 61 16進数('a'): 612020 'a'='a': 1 セット内の 1 行 (0.00 秒) mysql> 選択 -> 16進数(バイナリ('a'))、 -> 16進数(バイナリ('a '))、 -> BINARY('a') = BINARY('a ')\G; ************************** 1. 行 **************************** 16進数(2進数('a')): 61 16進数(2進数('a ')): 612020 バイナリ('a') = バイナリ('a '): 0 セット内の 1 行 (0.00 秒) CHAR と VARCHAR の場合は文字値を比較するため、最初の比較の戻り値は 1 になります。 BINARY と VARBINARY の場合、比較はバイナリ値に対して行われます。「a」の 16 進値は 61 で、「a 」の 16 進値は 612020 であり、明らかに異なります。したがって、2 番目の比較の戻り値は 0 になります。 3 番目の違いは、BINARY 文字列の場合、埋め込み文字は 0x00 であるのに対し、CHAR の場合、埋め込み文字は 0x20 であることです。これは、バイナリ比較の要件によるものと考えられます。0x00 は明らかに比較の最小文字です。例は次のとおりです。 mysql> テーブル t ( a BINARY(3) ) を作成します。 クエリは正常、影響を受けた行は 0 行 (0.00 秒) mysql> INSERT INTO t SELECT 'a'; クエリは正常、1 行が影響を受けました (0.00 秒) 記録: 1 重複: 0 警告: 0 mysql> SELECT a,HEX(a) FROM t\G; ************************** 1. 行 **************************** : : 16進数(a): 610000 セット内の 1 行 (0.00 秒) 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に少しでもお役に立てれば幸いです。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM をご愛顧いただき、ありがとうございます。 以下もご興味があるかもしれません:
|
<<: React.cloneElement の使い方の詳しい説明
>>: ログインフォームを実装するためのReactサンプルコード
目次1. Vueリスナー配列2. vueが配列の変更を監視できない状況1. Vueリスナー配列Vue...
1. Windows Server 2019 のインストールVmware に Windows Se...
数日前、私のウェブサイトがいくつかの IP アドレスから大量の悪意のある標的型スキャンを受け、ブルー...
MySQL-8.0.22-winx64のデータベースインストールチュートリアルは参考になります。具体...
memcachedをインストールする yum インストール -y memcached #memcac...
MySQLの概要MySQL はリレーショナル データベース管理システムです。データベースは構造化され...
1. はじめにプロジェクトで要件に遭遇したら、データを検索してキーワードを強調表示します。要件を受け...
ある日、内部結合を含む SQL ステートメントの実行速度はそれほど遅くはない (0.1 ~ 0.2)...
序文: MySQL で最も一般的に使用されるアーキテクチャは、マスター スレーブ レプリケーションで...
MySQL の運用と保守において、R&D の同僚が 2 つの異なるインスタンスのデータを比較...
1 インストールリソースパッケージmysql-8.0.18-1.el7.x86_64.rpm-bun...
Docker を使用すると、外部からコンテナにアクセスしたり、コンテナを相互接続したりすることで、ネ...
Django アプリケーションを構築して拡張していくと、必然的に特定のタスクをバックグラウンドで自動...
Ansible は、Python をベースに開発された新しい自動運用・保守ツールです。 多くの古い運...
「キャンセル」ボタンは必要な操作プロセスの一部ではなく、デザイン上の主要な要素として表示されません...