mysql - 如何在没有任何 where 条件的情况下使用 like 查询?
问题描述
$sql = $conn->query("SELECT * FROM tasks t
LEFT JOIN users u
ON t.allowed_countries LIKE u.country");
解决方案
我不清楚您的意图是什么,但查询“有效”
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)
推荐阅读
- c++ - 犰狳的 print() 方法和 cout 从 Rcpp 调用时的顺序不一致
- python - Eratosthenes 实施的慢筛。为什么?
- mysql - docker-compose:依赖容器在依赖的 MySQL 容器完全初始化之前运行
- python - 从 Python 中的数据框创建起点-终点矩阵
- javascript - 在会话结束前提示用户
- kotlin - Kotlin:在多平台项目中打印类名而不进行反射
- json - 如何在 Swift 中将字符串数据从 zip 写入新 zip
- ios - UI 按钮连接
- javascript - 在javascript中将typedarray复制到数组的最快方法?
- excel - 使用日期和时间从单元格中提取日期