-1

有人可以帮我弄这个吗。表格需要在大写字母和普通字母之间没有区别。

$raw_results = mysql_query("SELECT * FROM product
            WHERE (`naam` LIKE '%".$query."%') OR (`titel` LIKE '%".$query."%') OR (`druk` LIKE '%".$query."%')") or die(mysql_error());

字符集是 latin1_bin

4

4 回答 4

1

你可以UPPER在mysql中使用。

$raw_results = mysql_query("SELECT * FROM product
            WHERE (UPPER(naam) LIKE UPPER('%".$query."%')) OR (UPPER(titel) LIKE UPPER('%".$query."%')) OR (UPPER(druk) LIKE UPPER('%".$query."%'))") or die(mysql_error());
于 2013-09-19T10:42:21.123 回答
1

这取决于您在字段中使用的排序规则。使用默认latin1_general_ci排序规则(或类似_ci的结尾)比较和字符串函数将不区分大小写。

所以,你有两个选择。首先 -在您的 PHP 应用程序中使用strtolower()或在 MySQL 本身中使用LOWER() - 将您的搜索字符串转换为小写(即使它们独立于其原始内容大小写)。其次 - 对包含您的数据的字段使用相应的排序规则。比我已经提供的更多信息 -区分大小写手册页

于 2013-09-19T10:45:32.890 回答
0

使用strtolower将所有查询小写,然后进行搜索。

像这样的东西,所以它会匹配所有。

$query=strtolower($query);
$raw_results = mysql_query("SELECT * FROM product
            WHERE (`naam` LIKE '%".$query."%') OR (`titel` LIKE '%".$query."%') OR (`druk` LIKE '%".$query."%')") or die(mysql_error());
于 2013-09-19T10:41:08.197 回答
-3

将所有转换为小写或大写,它将起作用

$raw_results = mysql_query("SELECT * FROM product
            WHERE (strtolower(naam) LIKE '%".strtolower($query)."%') OR (strtolower(titel) LIKE '%".strtolower($query)."%') OR (strtolower(druk) LIKE '%".strtolower($query)."%')") or die(mysql_error());
于 2013-09-19T10:43:15.203 回答