我试图创建一个搜索功能以使用户可以组合两个值来在联系人列表中搜索人。
我希望数据库返回两个值都匹配的帖子。
现在我已经尝试这样做:input = searchValueA, searchValueB
SELECT * FROM ContactsList WHERE lastName LIKE '%searchValueA%' OR firstName LIKE '%searchValueA%' OR company LIKE '%searchValueA%' OR phoneNumber LIKE '%searchValueA%' AND lastName LIKE '%searchValueB%' OR firstName LIKE '%searchValueB%' OR company LIKE '%searchValueB%' OR phoneNumber LIKE '%searchValueB%';
但这会返回与两个搜索值均匹配的帖子。我只想获取两个搜索值都匹配的帖子。
我可以重新定义查询以使其执行我想要的吗?
来自sql入门的最佳问候
最佳答案
我认为您希望在这种情况下使用括号:
WHERE (lastName LIKE '%searchValueA%' OR
firstName LIKE '%searchValueA%' OR
company LIKE '%searchValueA%' OR
phoneNumber LIKE '%searchValueA%'
) AND
(lastName LIKE '%searchValueB%' OR
firstName LIKE '%searchValueB%' OR
company LIKE '%searchValueB%' OR
phoneNumber LIKE '%searchValueB%'
);
关于sql - 如何编写一个从两个searchValues返回匹配项的SQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59214867/