![](/img/trans.png)
[英]how can i use LIMIT operator in subquery with IN operator in outer query in MySQL
[英]Can use a subquery to assign LIMIT value in a MySql query?
我需要在沒有順序的情況下提取表的最后一行。 我試試這個,但不要 function:
SELECT *
FROM contabilidad.emp001_series
LIMIT (SELECT COUNT(*)-10 AS TOTAL FROM contabilidad.emp001_series)
我需要自然順序的結果,不能使用 ORDER BY
不可以。不允許使用子查詢。
此外,SQL 表中沒有“自然”順序。 SQL 表表示無序集。
最好的辦法是進行反向排序並從第 11 行開始:
select s.*
from contabilidad.emp001_series s
order by id desc
limit 999999999 offset 10;
如果你想要一組任意的 id,你也可以使用:
select s.*
from contabilidad.emp001_series s
where id < (select s2.id
from contabilidad.emp001_series s2
order by s2.id desc
limit 1 offset 10
);
這兩個都假設您有一個指定排序的某種列。
https://dev.mysql.com/doc/refman/8.0/en/select.html has detailed documentation about MySQL's SELECT
statement including all its clauses.
它說:
LIMIT 子句可用於限制 SELECT 語句返回的行數。 LIMIT 接受一個或兩個數字 arguments,它們都必須是非負 integer 常量,但以下情況除外:
在准備好的語句中,可以使用?指定 LIMIT 參數? 占位符標記。
在存儲的程序中,可以使用整數值的例程參數或局部變量來指定 LIMIT 參數。
表達式,包括子查詢,在 LIMIT 子句中沒有作為合法參數提及。
一個簡單的解決方案是在兩個查詢中完成您的任務:第一個獲取 COUNT(),然后在包含 LIMIT 的第二個查詢中將該值用作常量值。
並非每項任務都需要在單個 SQL 語句中完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.