如何编写从两个搜索值返回匹配项的 sql 查询
Posted
技术标签:
【中文标题】如何编写从两个搜索值返回匹配项的 sql 查询【英文标题】:How to write a sql query that returns matches from a two searchvalues 【发布时间】:2019-12-06 14:15:47 【问题描述】:我正在尝试创建一个搜索功能,用户可以在其中组合两个值来搜索联系人列表中的人。 我希望数据库返回两个值都匹配的 posts。
现在我已经尝试这样做了:
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%';
但这会返回匹配任一搜索值和两者的帖子。我只想获取两个搜索值都匹配的帖子。 我可以重新定义查询以使其执行我想要的操作吗?
【问题讨论】:
【参考方案1】:我认为您希望在这种情况下使用括号:
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 查询的主要内容,如果未能解决你的问题,请参考以下文章