Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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
Php 为什么这个MySQL查询区分大小写?_Php_Mysql - Fatal编程技术网

Php 为什么这个MySQL查询区分大小写?

Php 为什么这个MySQL查询区分大小写?,php,mysql,Php,Mysql,我正在尝试对我的MySQL数据库进行查询。我希望它不区分大小写。如果数据库中存在“红色”,并且我搜索“红色”,我希望结果显示出来 不幸的是,这个查询是区分大小写的,我不知道为什么: $color = "red"; $size = "large"; $query = mysql_query("SELECT * FROM items WHERE color = '$color' OR size = '$size'"); while ($row = mysql_fetch_array($query

我正在尝试对我的MySQL数据库进行查询。我希望它不区分大小写。如果数据库中存在“红色”,并且我搜索“红色”,我希望结果显示出来

不幸的是,这个查询是区分大小写的,我不知道为什么:

$color = "red";
$size = "large";

$query = mysql_query("SELECT * FROM items WHERE color = '$color' OR size = '$size'");

while ($row = mysql_fetch_array($query)) {

    if ($color == $row['color']) {
        echo "The color exists in the database";
    }
    if ($size == $row['size']) {
        echo "The size exists in the database";
    }

}
在本例中,数据库中存在“RED”,但找不到它



查询有什么问题?

因为您列的排序规则区分大小写

因为您列的排序规则区分大小写

区分大小写取决于列的排序规则/表和数据库的默认排序规则

区分大小写取决于列的排序规则/默认排序规则表和数据库的排序规则可以使用不区分大小写的
REGEXP
运算符。请参阅。

您可以使用不区分大小写的
REGEXP
运算符。请参阅。

显示您的
显示创建表项
显示创建表,我们可以告诉您如何更改它使其不区分大小写如何
显示创建表项
显示创建表,我们可以告诉您如何更改它使其不区分大小写。。。或者整张表的排序按zerkms的要求做-这将有助于任何以
\u ci
结尾的排序通常意味着不区分大小写,例如
utf8\u general\u ci
谢谢。我尝试了
utf8\u unicode\u ci
utf8\u general\u ci
,但都没有成功。。。。或者整张表的排序按zerkms的要求做-这将有助于任何以
\u ci
结尾的排序通常意味着不区分大小写,例如
utf8\u general\u ci
谢谢。我试过
utf8\u unicode\u ci
utf8\u general\u ci
但都没用。你能说得更具体些吗?如果是建设性的,我欢迎批评。
regexp
永远无法优化。mysql具有内置的功能,可以以不区分大小写的方式进行比较。所以,我看不出有什么理由喜欢慢解决方案而不是快解决方案。谢谢。我不知道MySQL不能优化正则表达式查找。这不是MySQL的缺点。没有RDBMS能够从技术上进行优化,他们应该能够优化像这样的简单案例,不管是否有人真的这样做。你能更具体一点吗?如果是建设性的,我欢迎批评。
regexp
永远无法优化。mysql具有内置的功能,可以以不区分大小写的方式进行比较。所以,我看不出有什么理由喜欢慢解决方案而不是快解决方案。谢谢。我不知道MySQL不能优化正则表达式查找。这不是MySQL的缺点。没有一种关系数据库管理系统能够从技术上进行优化,它们应该能够优化像这样的简单案例,不管是否有人真的这样做。