在我的 php 脚本中,
$names = $_GET['part'];
$result = mysql_query("SELECT * FROM namestable where names LIKE'%$names%' LIMIT 10");
while ($row = mysql_fetch_assoc($result)) {
$colors[]=$row['publishers'];
}
检查是否匹配并且运行良好。
但是假设我的表有一个名字 Alfred,只有当我输入时才会出现建议Alfr
如果我输入则不会出现alfr
如果您使用不区分大小写的排序规则,您提供的示例将起作用,例如utf8_general_ci
。 (参见 MySQL字符集支持 http://dev.mysql.com/doc/refman/5.0/en/charset.html手册部分了解更多信息。)
或者,您可以简单地使用LOWER http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_lower函数如下:
$names = strtolower(mysql_real_escape_string($_GET['part']));
$result = mysql_query("SELECT * FROM namestable WHERE names LIKE LOWER('%$names%') LIMIT 10");
顺便说一句,如果您试图捕获简单大小写更改之外的差异,您还可以使用 MySQL 的SOUNDEX http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_soundex函数来获取并查找听起来相似的字符串的匹配项。
顺便说一句,您需要在 $names 变量上使用 mysql_real_escape_string ,或者(更好)通过 mysqli 或 PDO 接口使用准备好的语句。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)