Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL IN语句,其中值不区分大小写_Mysql - Fatal编程技术网

MYSQL IN语句,其中值不区分大小写

MYSQL IN语句,其中值不区分大小写,mysql,Mysql,我目前正在尝试使用以下SQL语句根据用户输入建立白名单/黑名单: SELECT * FROM Customers WHERE City IN ('Paris','London'); SELECT * FROM Customers WHERE City NOT IN ('Paris','London'); 需要什么语法才能使Paris和London不区分大小写并匹配Paris和London 谢谢。您可以这样做,但是如果您为城市编制了索引,希望优化查询,则添加降低功能将终止优化: SELECT *

我目前正在尝试使用以下SQL语句根据用户输入建立白名单/黑名单:

SELECT * FROM Customers WHERE City IN ('Paris','London');
SELECT * FROM Customers WHERE City NOT IN ('Paris','London');
需要什么语法才能使Paris和London不区分大小写并匹配Paris和London


谢谢。

您可以这样做,但是如果您为城市编制了索引,希望优化查询,则添加
降低
功能将终止优化:

SELECT * FROM Customers WHERE LOWER(City) IN ('paris', 'london');

您可以这样做,但如果您已为城市编制了索引,希望优化查询,则添加
LOWER
函数将终止优化:

SELECT * FROM Customers WHERE LOWER(City) IN ('paris', 'london');

只要在数据库字段和索引上定义适当的排序规则,也可以正常工作

正如您可以通过
latin1\u-bin
'MySQL''看到的那样

mysql> SET @s1 = 'MySQL' COLLATE latin1_bin,
    ->     @s2 = 'mysql' COLLATE latin1_bin;
mysql> SELECT @s1 = @s2;
+-----------+
| @s1 = @s2 |
+-----------+
|         0 |
+-----------+
但与
拉丁语和瑞典语相比
是平等的

mysql> SELECT @s1 COLLATE latin1_swedish_ci = @s2;
+-------------------------------------+
| @s1 COLLATE latin1_swedish_ci = @s2 |
+-------------------------------------+
|                                   1 |
+-------------------------------------+

只要在数据库字段和索引上定义适当的排序规则,也可以正常工作

正如您可以通过
latin1\u-bin
'MySQL''看到的那样

mysql> SET @s1 = 'MySQL' COLLATE latin1_bin,
    ->     @s2 = 'mysql' COLLATE latin1_bin;
mysql> SELECT @s1 = @s2;
+-----------+
| @s1 = @s2 |
+-----------+
|         0 |
+-----------+
但与
拉丁语和瑞典语相比
是平等的

mysql> SELECT @s1 COLLATE latin1_swedish_ci = @s2;
+-------------------------------------+
| @s1 COLLATE latin1_swedish_ci = @s2 |
+-------------------------------------+
|                                   1 |
+-------------------------------------+

明白了。不幸。非常感谢您的回复!明白了。不幸。非常感谢您的回复!检查排序规则是否不区分大小写检查排序规则是否不区分大小写