sql - 如何编写一个从两个searchValues返回匹配项的SQL查询

标签 sql sqlite jdbc

我试图创建一个搜索功能以使用户可以组合两个值来在联系人列表中搜索人。
我希望数据库返回两个值都匹配的帖子。

现在我已经尝试这样做:

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/

相关文章:

SQL 是从右到左计算还是从左到右计算?

php - MySQL 无法看到 PHP 中的列。确定为 SQL 语句

MySQL 查询性能 : individuate and rewrite faster query

java - 从数据库检索数据时出现空指针异常

Sql逐行获取总和

java - 如何从 sqlite 中检索列并将其存储到数组中?

python - 第一个 Flask 项目 - 数据库文件不会更新

sqlite - 2019 年哪种存储选项最适合 phonegap?

java - c3p0 如何关闭所有数据库连接并在需要时重新打开它们?

java - com.microsoft.sqlserver.jdbc.SQLServerException : Incorrect syntax near '@P0'