序文 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サンプルコード
背景Alibaba Cloud RDS for MySQL(MySQL バージョン 5.7)データベ...
メソッドが定義されているクラスに応じて、現在のクラスへの静的参照を取得するには、self:: または...
コードをコピーコードは次のとおりです。リンクフォントサイズ: 12px;色: #000000;テキス...
Mysql は、高性能なデータ ストレージ サービスを提供する主流のオープン ソース リレーショナル...
前面に書かれたfilter:blur と filter:contrast がこのような素晴らしい化学...
この記事では、参考までにMySQL 8.0.16のインストールと設定方法のグラフィックチュートリアル...
ClickHouse は、オープンソースの列指向 DBMS (Yandex によって開発) です。 ...
HTML はタグと属性で構成されており、これらを組み合わせてブラウザにページの表示方法を指示します。...
ソースコードプレビュー: https://github.com/jdf2e/nutui NutUI ...
目次1. React フックと純粋関数2. シンプルなmyUseState 3. myUseStat...
序文: 「MySQL 入門」シリーズの記事は終了しました。今後も引き続き MySQL に焦点を当て、...
序文:サンドボックスといえば、私たちの頭には反射的に上の写真が思い浮かび、すぐに興味がわいてくるかも...
vuex 永続状態基本原則: すべての vuex データをローカルストレージに保存し、ページが更新さ...
序文仮想通貨の狂気的な投機により、マイニングウイルスは犯罪者が最も頻繁に使用する攻撃方法の 1 つに...
必要な効果: 確認コードを送信するためにクリックした後、ボタンは無効になり、5 秒後に無効解除されま...