首页 > 解决方案 > 如何在没有任何 where 条件的情况下使用 like 查询?

问题描述

$sql = $conn->query("SELECT * FROM tasks t 
                     LEFT JOIN users u 
                     ON t.allowed_countries LIKE u.country");

标签: mysqlsql

解决方案


我不清楚您的意图是什么,但查询“有效”

drop table if exists t,t1;
create table t(allowed_countries varchar(3));
create table t1(country varchar(3));
insert into t values ('uk'),('usa');
insert into t1 values ('uk'),('us');

SELECT * FROM  t 
LEFT JOIN t1 u 
ON t.allowed_countries LIKE u.country ;

+-------------------+---------+
| allowed_countries | country |
+-------------------+---------+
| uk                | uk      |
| usa               | NULL    |
+-------------------+---------+
2 rows in set (0.00 sec)

也许您想包含通配符(%)?

SELECT * FROM  t 
LEFT JOIN t1 u 
ON t.allowed_countries LIKE concat(u.country,'%') ;

+-------------------+---------+
| allowed_countries | country |
+-------------------+---------+
| uk                | uk      |
| usa               | us      |
+-------------------+---------+
2 rows in set (0.00 sec)

推荐阅读