我有一个商店表。一些字段是名称、网站、描述等。
我有一个自动建议搜索栏。我想匹配输入并显示一些相关商店。现在,它可以完美地将用户输入与名称的 LIKE 语句相匹配。
$input = $_GET["q"];
$data = array();
// query your DataBase here looking for a match to $input
include_once "scripts/connect_to_mysql.php";
$query = mysql_query("SELECT name,linklabel,permalink FROM tblMerchants WHERE name LIKE '%$input%'");
while ($row = mysql_fetch_assoc($query)) {
$json = array();
$json['name'] = ucwords($row['linklabel']);
$json['value'] = $row['permalink'];
$data[] = $json;
}
echo json_encode($data);
但是,我正在尝试将用户输入与表中的多个字段进行匹配。我正在尝试以下操作,但它不起作用:
SELECT linklabel,permalink
FROM tblMerchants
WHERE name LIKE '%$input%'
OR website LIKE '%$input%'
OR description LIKE '%$input%'
正在尝试解决这个问题。任何意见都将受到赞赏!
抱歉,应该提到这一点。我所说的不起作用是指,当使用多个 LIKE 语句时,它仍然只返回类似于“名称”的结果
最佳答案
like
和 and
因彼此相处不佳而臭名昭著。
使用括号进行澄清,例如
SELECT linklabel,permalink
FROM tblMerchants WHERE
(name LIKE '%$input%') OR
(website LIKE '%$input%') OR
(description LIKE '%$input%')
否则它可能会尝试猜测并做类似的事情
SELECT linklabel,permalink
FROM tblMerchants WHERE
name LIKE ('%$input%' OR
website LIKE '%$input%') OR
(description LIKE '%$input%')
我不认为上面的查询是它会尝试的实际查询,但基本上它组合/链接它们的方式可能是“未定义的”并且需要解释。
关于Mysql 多个 LIKE 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7910238/