我有一个 MySqL 数据库,其中包含一个属性名称表(可以多个单词),我想运行查询来获取用户文本输入的结果以用于自动完成字段。
我当前使用的查询是:
$query = "SELECT * FROM table WHERE LOWER(name) LIKE '%$value%' LIMIT 7";
但这还不够好。
我尝试拆分输入 $value 但由于某种原因不起作用:
$values = explode(" ", $value);
$str = "";
for($i = 0; $i < count($values); ++$i)
{
if( $i == 0)
$str .= "LOWER(name) LIKE '%&$values[$i]%' ";
else
$str .= "AND LOWER(name) LIKE '%$values[$i]%' ";
}
$query = "SELECT * FROM table WHERE ". $str . " LIMIT 7";
你有什么建议吗?
提前发送。
最佳答案
在查询中使用 OR
而不是 AND
:
$str .= "OR LOWER(name) LIKE '%$values[$i]%' ";
关于PHP SQL 查询自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41090874/