在我的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
答案 0 :(得分:1)
如果您使用不区分大小写的排序规则,例如utf8_general_ci
,则您提供的示例将有效。 (有关详细信息,请参阅MySQL Character Set Support手册部分。)
或者,您可以简单地使用LOWER函数,如下所示:
$names = strtolower(mysql_real_escape_string($_GET['part']));
$result = mysql_query("SELECT * FROM namestable WHERE names LIKE LOWER('%$names%') LIMIT 10");
顺便提一下,如果你试图捕捉到除了简单的大小写更改之外的差异,你也可以使用MySQL的SOUNDEX函数来获取和找到听起来相似的字符串的匹配。
顺便说一句,您需要在$ names变量上使用mysql_real_escape_string,或者(更好的是)通过mysqli或PDO接口使用预准备语句。