有人可以帮我弄这个吗。表格需要在大写字母和普通字母之间没有区别。
$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
你可以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());
这取决于您在字段中使用的排序规则。使用默认latin1_general_ci
排序规则(或类似_ci
的结尾)比较和字符串函数将不区分大小写。
所以,你有两个选择。首先 -在您的 PHP 应用程序中使用strtolower()或在 MySQL 本身中使用LOWER() - 将您的搜索字符串转换为小写(即使它们独立于其原始内容大小写)。其次 - 对包含您的数据的字段使用相应的排序规则。比我已经提供的更多信息 -区分大小写手册页。
使用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());
将所有转换为小写或大写,它将起作用
$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());