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

MySQLで大文字と小文字を区別する一意性と大文字と小文字を区別しない検索を実現するにはどうすればよいですか?


次の2つの方法を使用して、大文字と小文字を区別する一意性と大文字と小文字を区別しない検索を実現できます-

  • VARBINARYデータ型
  • _bin照合

VARBINARYデータ型

VARBINARYデータ型を操作するには、最初にテーブルを作成します。テーブルを作成するためのクエリは次のとおりです-

mysql> create table SearchingDemo2
   -> (
   -> UserId VARBINARY(128) NOT NULL,
   -> UNIQUE KEY index_on_UserId2(UserId )
   -> )ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Query OK, 0 rows affected, 1 warning (0.99 sec)

UserIdのデータ型は「UserId」列にVARBINARY(128)とIndex(「index_on_UserId2」)であることに注意してください。

_bin照合

2番目の方法は次のとおりです。新しいテーブルを作成しましょう-

mysql> create table SearchingDemo
   -> (
   -> UserId varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
   -> UNIQUE KEY index_on_UserId(UserId )
   -> )ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Query OK, 0 rows affected, 2 warnings (0.88 sec)

UserIdのデータ型は「UserId」列にvarchar(128)とindex(index_on_UserId)です。

上記のアプローチはどちらも、MySQLで大文字と小文字を区別する一意性と大文字と小文字を区別しない検索を実現します。


  1. MySQLで文字列の先頭にある特定の文字を検索して置き換えるにはどうすればよいですか?

    これには、INSERT()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> ZipCode varchar(200)    -> ); Query OK, 0 rows affected (0.47 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('9030'); Query OK, 1 row aff

  2. MySQL IN()を使用して大文字と小文字を区別しないSELECTを実行しますか?

    まずテーブルを作成しましょう- mysql> create table DemoTable1460    -> (    -> Name varchar(20)    -> ); Query OK, 0 rows affected (0.91 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1460 values('Chris'); Query OK, 1 row affected (0.15 sec)