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只能对每个表使用一个索引,所以从第二个标准来看,没有索引可以使用。