这是我的原始查询...
SELECT `id`
FROM `properties`
LIMIT 10, 20
LIMIT
条件用于分页。
现在,我必须像以前一样,但我只需要获得存在条件的行的三分之一。
我想出了这个,只是在我弄清楚如何做之前扔LIMIT 30
(总行数匹配/ 3)* 2.
SELECT `id`
FROM `properties`
WHERE `id` NOT IN (SELECT `id`
FROM `properties`
WHERE `vendor` = "abc"
ORDER BY RAND()
LIMIT 30)
LIMIT 10, 20
MySQL说......
1235 - 此版本的MySQL尚不支持'LIMIT& IN / ALL / ANY / SOME子查询'
我想我不能在子查询中使用LIMIT
。
所以这是一个多问题,但都是相关的...
LIMIT
的解决方法?答案 0 :(得分:15)
抱歉,我迟到了,这对我有用:
SELECT p.id
FROM properties p
LEFT JOIN (SELECT t.id
FROM PROPERTIES t
WHERE t.vendor = 'abc'
ORDER BY RAND()
LIMIT 30) x ON x.id = p.id
WHERE x.id IS NULL
LIMIT 10, 20
答案 1 :(得分:4)
如果您的MySQL版本不支持,那么您有2个选项:
答案 2 :(得分:1)
MySQL确实在子查询中支持LIMIT ......但MySQL不支持在子查询中使用IN / NOT IN。
说实话,我真的不知道你想要完成什么。