如何根据条件(使用)选择一定数量的行 IN
或任何其他条件),如果条件返回的行数小于 LIMIT x
然后从剩余行中选择,直到 LIMIT x
满足了吗?
所以,如果我有下表:
id comment ord
1 ... null
2 ... 1
3 ... 2
4 ... null
那么结果集应该是,使用 LIMIT 3
:
id comment ord
2 ... 1
3 ... 2
1 ... null
如果 ord
列不为空,则我要选择相应的行,如果不为空,则我要从其余行中选择一个或多个 ord
空,直到 LIMIT 3
达到条件。
另一个例子,如果我有下一个表数据:
id comment ord
1 ... 3
2 ... 1
3 ... 2
4 ... null
那么结果集应该是
id comment ord
2 ... 1
3 ... 2
1 ... 3
我尝试过以下mysql代码:
SELECT t.* FROM table t
WHERE
t.ord IN (SELECT t1.ord FROM table t1 WHERE t1.ord IS NOT NULL ORDER BY t1.ord ASC)
OR
t.id IN (SELECT t2.id FROM table t2 WHERE t2.ord IS NULL ORDER BY t2.id ASC)
LIMIT 3;
但我总是能听到 ord NULL
,即使我有一些 ord
列不能为空。
需要帮忙吗?
1条答案
按热度按时间xmd2e60i1#
检查是否
ord
在您的ORDER BY
: