6

多くのプログラミング言語には、2つの文字列のテキストが等しいかどうかを確認する基本的なequals演算子があります。

if ("Hi" == "hi") {
  //this code runs
}

ただし、厳密に等しい演算子もあります。

if ("Hi" === "hi") {
  //this code will never run
}

MySQLに上記のコードスニペットと同等の演算子はありますか?オペレーターはそれ=をカットしません。私が実行した場合:

SELECT * FROM users WHERE name = 'john';

MySQLはJohn、大文字の「J」が付いた行を返します。

お時間をいただきありがとうございます。

4

2 に答える 2

12

COLLATE演算子を使用して、列を大文字と小文字を区別する照合に変換できます。

SELECT * FROM users WHERE name LIKE 'john' COLLATE utf8_bin

大文字と小文字の区別に関するMySQLのドキュメント。

于 2012-06-25T16:55:44.750 に答える
2

あなたが使用することができますSTRCMP

SELECT * FROM users WHERE STRCMP(name, 'john') = 0;

ノート :

  • 0=同じ
  • -1=最初の要素が小さい
  • 1=最初の要素が大きい

MySQL 4.0以降を使用している場合は、COLLATESを使用する必要があります(STRCMPでは大文字と小文字が区別されなくなりました)

  • COLLATE utf8_general_ci=大文字と小文字を区別しない(ci)
  • COLLATE utf8_general_cs=大文字と小文字を区別(cs)
于 2012-06-25T16:55:55.213 に答える