MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのBINARYキーワードとは?文字列比較で大文字と小文字を区別する方法

MySQLはデフォルトでは大文字と小文字を区別しない文字列比較を行いますが、BINARYキーワードを使用することで、大文字と小文字を区別した文字列比較を実行できるようになります。

BINARYキーワードの仕組み

BINARYキーワードを指定すると、MySQLは文字列を単なる「文字」としてではなく、その背後にあるASCII値(バイナリ値)に基づいて比較します。これにより、「YashPal」と「YASHPAL」のような、アルファベットとしては同じでも大文字・小文字が異なる文字列を、別の文字列として扱うことが可能になります。

サンプルデータでの確認

以下のデータを持つテーブル「student_info」を使って、実際に動作を確認してみましょう。

mysql> Select * from student_info;
+------+---------+------------+------------+
| id   | Name    | Address    | Subject    |
+------+---------+------------+------------+
| 101  | YashPal | Amritsar   | History    |
| 105  | Gaurav  | Chandigarh | Literature |
| 125  | Raman   | Shimla     | Computers  |
+------+---------+------------+------------+
3 rows in set (0.00 sec)

BINARYキーワードを使ったクエリ例

次のクエリでは、WHERE句の中でBINARYキーワードを使用し、大文字と小文字を区別した文字列比較を強制的に行っています。

mysql> select * from student_info WHERE BINARY Name IN('YashPal', 'GAURAV');
+------+---------+----------+---------+
| id   | Name    | Address  | Subject |
+------+---------+----------+---------+
| 101  | YashPal | Amritsar | History |
+------+---------+----------+---------+
1 row in set (0.08 sec)

結果の解釈

検索条件には「YashPal」と「GAURAV」の2つを指定しましたが、返ってきたのは「YashPal」の1件だけです。これは、BINARYキーワードによって大文字と小文字が厳密に区別され、テーブル内の「Gaurav」(先頭のみ大文字)が「GAURAV」(すべて大文字)とは一致しないと判断されたためです。

このように、BINARYキーワードを使用すると、MySQLは大文字と小文字を区別した厳密な文字列比較を行うことができます。パスワード照合やID照合など、厳密な一致が必要な場面で特に役立ちます。

  1. MySQLで予約語「Key」をカラム名として使用する方法【バッククォートの使い方】

    MySQLでは「Key」は予約語(予約済みキーワード)として登録されているため、そのままカラム名として使用するとエラーが発生します。そこで活躍するのがバッククォート(`)です。カラム名の前後をバッククォートで囲むことで、予約語でも安全に使用できるようになります。本記事では、実際にカラム名「key」を持つテーブルを作成する例を通じて、具体的な手順をわかりやすく解説します。1. テーブルを作成するまず、バッククォートで囲んだ「Key」というカラムを持つテーブルを作成しましょう。mysql> create table DemoTable ( `Key` int ); Query OK,

  2. C#の「is」キーワードとは?型チェックの使い方をわかりやすく解説

    C#における 「is」キーワード は、あるオブジェクトが特定の型にキャスト(変換)できるかどうかを判定するために使用されます。演算の結果は bool 型(true / false)として返されます。継承関係にあるクラス同士では、派生クラスのオブジェクトは基底クラスの型として扱えるため true を返しますが、互換性のない型への変換は false となります。サンプルコードusing System; namespace DemoApplication{ class Program{ static void Main(){ Employee emp