我正在搜索功能。我想搜索几个选定列具有给定值的位置,但必须限制在user_id='x'位置。我所提供的是所有结果,而不仅仅是user_id='x'的位置,这就是我想要的:

在我的查询下面,该查询返回所有内容,而不仅仅是搜索user_id='x'的数据

SELECT * FROM request
WHERE product_name LIKE 'NDQB12%' OR request_id LIKE 'NDQB12%'
OR batch_no LIKE 'NDQB12%' AND user_id='16';


意见建议

最佳答案

您需要使用括号来分隔条件:

SELECT *
FROM request
WHERE
     (
       (product_name LIKE 'NDQB12%')
       OR (request_id LIKE 'NDQB12%')
       OR (batch_no LIKE 'NDQB12%')
     )
     AND user_id='16';


如果先前条件之一为True,则此查询将仅显示用户16的数据。

关于mysql - 仅在满足条件的列中进行多列搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49282192/

10-10 03:32