Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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
Php 使用LIKE根据单个值检查多个MySQL列_Php_Mysql_Sql - Fatal编程技术网

Php 使用LIKE根据单个值检查多个MySQL列

Php 使用LIKE根据单个值检查多个MySQL列,php,mysql,sql,Php,Mysql,Sql,选择* 从表名 其中,/LIKE(col1、col2、col3、col4)中的'value%' 我想在多个列中找到一个值,其值的条件类似。必须在col1或col2或….中找到带有“value%”的值。。。。。像这样 我有一个10列的大查询要查找,所以需要对此进行优化查询 先谢谢你 您可以这样做: SELECT * FROM tableName WHERE col1 LIKE 'value%' OR col2 LIKE 'value%' OR .. 希望这有帮助。您可以这样做: SELE

选择*
从表名
其中,/LIKE(col1、col2、col3、col4)中的'value%'

我想在多个列中找到一个值,其值的条件类似。必须在col1或col2或….中找到带有“value%”的值。。。。。像这样

我有一个10列的大查询要查找,所以需要对此进行优化查询

先谢谢你

您可以这样做:

SELECT *
FROM   tableName
WHERE  
col1 LIKE 'value%' OR
col2 LIKE 'value%' OR ..
希望这有帮助。

您可以这样做:

SELECT *
FROM   tableName
WHERE  
col1 LIKE 'value%' OR
col2 LIKE 'value%' OR ..

希望这能有所帮助。

您可以使用union为每个搜索创建一个很好的长查询(MySQL不太擅长优化或优化条件),或者您需要在所有涉及的列上创建一个长查询,并执行一个简单的操作

联合查询将如下所示:

select * from tablename where col1 LIKE 'value%'
union
select * from tablename where col2 LIKE 'value%'
...
全文索引上的布尔搜索如下所示:

select * FROM tablename WHERE MATCH (col1,col2,...)
AGAINST ('+value*' IN BOOLEAN MODE);

您可以为每个搜索创建一个很好的长查询(MySQL不太擅长优化或优化条件),或者您需要在所有涉及的列上创建一个长查询,并执行一个查询

联合查询将如下所示:

select * from tablename where col1 LIKE 'value%'
union
select * from tablename where col2 LIKE 'value%'
...
全文索引上的布尔搜索如下所示:

select * FROM tablename WHERE MATCH (col1,col2,...)
AGAINST ('+value*' IN BOOLEAN MODE);

如果你需要搜索这么多列,那么这似乎是一个不太好的表设计…你必须为每个“like”列设置条件如果你需要搜索这么多列,那么这似乎是一个不太好的表设计…你必须为每个“like”列设置条件这在一个大表上会非常慢,因为MySQL只能对每个表使用一个索引,所以从第二个标准来看,没有索引可以使用。这在一个大表上会非常慢,因为MySQL只能对每个表使用一个索引,所以从第二个标准来看,没有索引可以使用。