【发布时间】:2019-06-02 20:46:49
【问题描述】:
我有以下 SQL 查询:
SELECT * FROM `test2`
WHERE text LIKE (SELECT concat(startswith,"%") from test1 ORDER BY RAND() LIMIT 1)
基本上我想从 test1 表中选择一行,然后从 test2 表中找到所有以 test1 中 startswith 列中的字符开头的记录。
但是这个查询并没有这样做。我哪里错了?
这里是查询中的表格
SELECT * FROM `test1`
startswith
==========
aaa
bbb
ccc
SELECT * FROM `test2`
text
====
aaa3k123k12312p03edwqeq
aaa12313fwefrwerw
aaafwre3we4232
bbb123123rwqe12e1
【问题讨论】:
-
只需从子查询中删除 ORDER BY 和 LIMIT?
-
@jarlh,如果我这样做,我会收到“子查询返回超过 1 行”错误。
-
当然...做一个 JOIN intead!
标签: mysql sql select subquery sql-like