Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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查询?_Mysql - Fatal编程技术网

有没有办法缩短由许多条件组成的MySQL查询?

有没有办法缩短由许多条件组成的MySQL查询?,mysql,Mysql,我有这样一个问题: SELECT field FROM table WHERE column1 = 'x' OR column2 = 'x' OR column3 = 'x' OR column4 = 'x'... 现在有很多列要检查相同的值。有什么办法可以缩短这个时间吗?您应该使用Mysql全文搜索功能 SELECT field FROM table WHERE 'x' in (column1, column2, column3, ....)

我有这样一个问题:

SELECT field 
FROM table 
WHERE column1 = 'x' OR 
      column2 = 'x' OR 
      column3 = 'x' OR 
      column4 = 'x'...

现在有很多列要检查相同的值。有什么办法可以缩短这个时间吗?

您应该使用Mysql全文搜索功能

SELECT field FROM table WHERE 'x' in (column1, column2, column3, ....)
以下是您可以在代码中全文使用的查询:

SELECT * FROM your_table_name
WHERE MATCH (yourcolumn1,yourcolumn2,...)
AGAINST ('your texts to search' IN BOOLEAN MODE);
注意:您应该对要搜索的列应用全文索引

您可以通过与或条件的组合使用like进行查询:

select * from table
where
match (column1, column2, column3)
against ('xxx' IN BOOLEAN MODE)

请参阅:

Nice-但我怀疑真正的问题是架构没有正常化。有些网站有“搜索所有字段”功能,或“搜索所有选中的字段”。这可能在现实生活中很有用。