Mysql 多个 LIKE 不起作用

标签 mysql sql sql-like autosuggest

我有一个商店表。一些字段是名称、网站、描述等。

我有一个自动建议搜索栏。我想匹配输入并显示一些相关商店。现在,它可以完美地将用户输入与名称的 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 语句时,它仍然只返回类似于“名称”的结果

最佳答案

likeand 因彼此相处不佳而臭名昭著。

使用括号进行澄清,例如

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/

相关文章:

t-sql - 如何在T-SQL中匹配US-ASCII字符?

ruby-on-rails - 使用 Rails 进行不区分大小写的 Postgres 搜索

php - 获取数组mysql数据库php

sql - 从 PL/SQL 插入到临时表 GTT 非常慢

mysql - 查找一个月有多少分钟 : MySQL

mysql - PROCEDURE 的参数数量不正确

sql - 如何按 A 列排序,然后按 B 列排序?

elasticsearch - Cassandra 和高级查询 : Spark, ElasticSearch, Sorl

mysql - 如何连接 3 个表的 SQL 查询

mysql "table does not exist"