有人可以帮我解决这个问题。表格需要在大写字母和普通字母之间没有区别。
$raw_results = mysql_query("SELECT * FROM product
WHERE (`naam` LIKE '%".$query."%') OR (`titel` LIKE '%".$query."%') OR (`druk` LIKE '%".$query."%')") or die(mysql_error());
charset是latin1_bin
答案 0 :(得分:1)
您可以在mysql中使用UPPER
。
$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());
答案 1 :(得分:1)
这取决于你用于你的领域的整理。使用默认的latin1_general_ci
排序规则(或类似的_ci
- 结束)比较和字符串函数将对大小写不敏感。
所以,你有两个选择。首先 - 在PHP应用程序中使用strtolower()或在MySQL本身使用LOWER() - 将搜索字符串转换为小写(即使它们独立于原始内容情况)。其次 - 对包含数据的字段使用相应的排序规则。比我已经提供的更多信息 - 在case sensitivity manual page。
答案 2 :(得分: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());
答案 3 :(得分:-3)
将all转换为小写或大写,它将起作用
$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());