如何在不允许“IN”的情况下重新编写MySQL查询?

时间:2011-08-08 18:13:13

标签: mysql

这个MySQL-Query:

SELECT * FROM table_1 t_1
WHERE t_1.title_search IN
(
  SELECT title_search FROM t_2 limit 1, 10
);

产生此错误:

Error Code: 1235. This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

经过一些谷歌搜索后,我在MySQL的this Developer Page找到了mysqlf。我理解,不支持这种形式的查询。有没有办法改写这个?

1 个答案:

答案 0 :(得分:1)

SELECT t_1.* 
FROM table_1 t_1, table_2 t_2
WHERE t_1.title_search = t_2.title_search
limit 1,10;

如果您正在使用限制,例如网页分页,那么限制最好是最后一个子句,但是如果您使用限制来限制IN子句的结果(实际上您只想匹配第一个10条T_2表的记录),则上述情况不正确。