6

在许多编程语言中,有一个基本的等号运算符,它将查看两个字符串的文本是否相等:

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 回答