搜索三列

时间:2012-04-07 10:27:41

标签: mysql sql search

我希望有人可以提供以下帮助。我正在尝试创建用户特定的搜索功能。当有人登录时,他们可以运行搜索,该搜索应返回customer_reforder_details列的结果。

我尝试过以下操作,但它会返回不同客户的结果。

SELECT *
FROM `job` 
WHERE c_name = 'John Doe'
AND customer_ref LIKE '%do%'
OR order_details LIKE '%do%'

我想将结果限制为特定客户(原因很明显)。如果我删除底线(OR order_details LIKE '%do%'),结果会正确锁定到客户,但是,当它在那里时,我会得到包括其他客户名称的结果。

请注意,%do%只是一个通配符搜索词,表示门或Doreen(用于测试)。在实际代码中,它将是在搜索框中输入的值。

非常感谢提前!

2 个答案:

答案 0 :(得分:2)

您需要在查询中包含圆括号,以阐明您要搜索的字词:

SELECT *
FROM `job` 
WHERE c_name = 'John doe'
AND (customer_ref LIKE '%do%'
OR order_details LIKE '%do%')

答案 1 :(得分:0)

尝试使用CONCAT例如:

SELECT *
FROM job 
WHERE job.c_name = 'John doe' AND
(job.customer_ref LIKE CONCAT '%do' 
OR job.order_details LIKE CONCAT '%do')
相关问题