Mysql 具有两个值的类SQL查询?
我想通过搜索特定列中的一些单词来选择一行 以下是我的想法,但显然不起作用:Mysql 具有两个值的类SQL查询?,mysql,sql,Mysql,Sql,我想通过搜索特定列中的一些单词来选择一行 以下是我的想法,但显然不起作用: SELECT * FROM 'list' WHERE 'Name' LIKE '%cat%' AND '%bengal%' AND 'Color' LIKE '%navy%'` 基本上我想找到这一行: ID | Name | Color ---+------------------+------------- 1 | Stuff | Stuff 2 | cat weir
SELECT *
FROM 'list'
WHERE 'Name' LIKE '%cat%' AND '%bengal%' AND 'Color' LIKE '%navy%'`
基本上我想找到这一行:
ID | Name | Color
---+------------------+-------------
1 | Stuff | Stuff
2 | cat weird bengal | navy -> THIS
3 | cat weird bengal | blue
4 | Other stuff | stuff
5 | dog bengal | navy
我在这里搜索,但只找到了建议或的人,但是,正如您从示例表中看到的,我无法使用它,或者它将与ID:5匹配
有什么方法可以说“this”和“that”?您可以使用同一列两次:
SELECT *
FROM list
WHERE Name LIKE '%cat%'
AND Name LIKE '%bengal%'
AND Color LIKE '%navy%';
如前所述,如果事先知道订单,您可以使用单件式:
SELECT *
FROM list
WHERE Name LIKE '%cat%bengal%'
AND Color LIKE '%navy%';
无论如何,您的查询是不可搜索的。我建议使用特定于RDBMS的全文索引。您可以使用同一列两次:
SELECT *
FROM list
WHERE Name LIKE '%cat%'
AND Name LIKE '%bengal%'
AND Color LIKE '%navy%';
如前所述,如果事先知道订单,您可以使用单件式:
SELECT *
FROM list
WHERE Name LIKE '%cat%bengal%'
AND Color LIKE '%navy%';
无论如何,您的查询是不可搜索的。我建议使用特定于RDBMS的全文索引。试试下面的方法。它可能会有所帮助
SELECT *
FROM list
WHERE Name LIKE '%cat%'
and Name LIKE '%bengal%'
and Color LIKE '%navy%';
或
正如豪尔赫所建议的那样
SELECT * FROM list WHERE Name LIKE '%cat%bengal%' and Color LIKE '%navy%';
试试下面,可能会有帮助
SELECT *
FROM list
WHERE Name LIKE '%cat%'
and Name LIKE '%bengal%'
and Color LIKE '%navy%';
或
正如豪尔赫所建议的那样
SELECT * FROM list WHERE Name LIKE '%cat%bengal%' and Color LIKE '%navy%';
SQL是一种查询语言。你的DBMS是什么?@rory.ap我使用mysql那么你为什么不用mysql标记你的问题?如果你给它贴上正确的标签,你就会吸引那些有正确知识的人来回答你的问题。@rory.ap哦,对不起。UpdatedSQL是一种查询语言。你的DBMS是什么?@rory.ap我使用mysql那么你为什么不用mysql标记你的问题?如果你给它贴上正确的标签,你就会吸引那些有正确知识的人来回答你的问题。@rory.ap哦,对不起。Updated我为什么要问sargable?旁注,如果OP知道他想要的单词顺序,只有一个条件就足够了,比如“%cat%bengal%”@JorgeCampos是的,如果是这样的话,你是完全正确的。我为什么要问sargable?旁注,如果OP知道单词的顺序,只需要一个条件就足够了,比如“%cat%bengal%”@JorgeCampos是的,如果是这样的话,你是完全正确的。OP不想要文本只包含cat或bengal的行,它需要两者。OP不想要文本只包含cat或bengal的行,它需要两者。