2012-03-05 76 views
2
select 
    id 
from 
    tableABC 
limit (select count(id) from tableCBA), 1 

如果我需要選擇限制,如示例代碼中所示,如何在mySql中執行此操作?這只是本論壇目的的簡化代碼,否則這是其他情況下選擇的複雜情況的一部分。mysql選擇內部限制

+0

您是否試圖選擇表格的最後一行?顯示你的模式。 – 2012-03-05 13:14:37

+0

我不能在MySQL中做到這一點。您可以在LIMIT上使用子選擇,但不使用**。我會建議將其編碼到客戶端(也許PHP?)。否則,創建存儲過程。後者應該不是問題。 – Roger 2012-03-05 13:18:15

回答

0

不能直接有一個動態值的上限,但你的查詢可以被改寫限制,具體如下:

set i := (select count(*) from tableCBA); 
select id 
from tableABC 
where (i := i-1) = 0; 

這將返回第n行,其中n是tableCBA中的行數;

+0

不知道這是否是性能明智的這樣一個好主意?喜歡創造力。 – Roger 2012-03-05 13:34:30

0
select @LimitRowsCount1=count(id) from tableCBA; 

PREPARE STMT FROM "SELECT id from tableABC LIMIT ?"; 

EXECUTE STMT USING @LimitRowsCount1;