Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 具有两个值的类SQL查询?_Mysql_Sql - Fatal编程技术网

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的行,它需要两者。