請幫我找到下面查詢的sqlite等價物。嘗試了很多。Mysql查詢的對應Sqlite查詢語法
SET @rownum := 0;
SELECT * FROM (
SELECT @rownum := @rownum+1 AS rank, id
FROM tbl_flight
ORDER BY id DESC
) AS tbl_flight WHERE id = 2
請幫我找到下面查詢的sqlite等價物。嘗試了很多。Mysql查詢的對應Sqlite查詢語法
SET @rownum := 0;
SELECT * FROM (
SELECT @rownum := @rownum+1 AS rank, id
FROM tbl_flight
ORDER BY id DESC
) AS tbl_flight WHERE id = 2
不能在單個查詢做到這一點,但您可以使用臨時表和每個表的ROWID屬性:
http://sqlfiddle.com/#!5/f0a1b/8(您不能運行小提琴兩次,你必須始終重新運行前先重建模式)
DROP TABLE IF EXISTS tmp;
CREATE TEMPORARY TABLE tmp AS
SELECT id
FROM tbl_flight
ORDER BY id DESC;
SELECT tmp.rowid AS rank, tmp.id FROM tmp WHERE id=2;
有趣的是,如果你切換到SQLite(WebSQL)並在該環境中運行你的代碼,你不會得到那個I/O錯誤: http://sqlfiddle.com/#!7/f0a1b/2必須是奇怪的SQL.js –
此版本似乎並沒有這個問題:http://sqlfiddle.com/#!5/f0a1b/ 10 –
請解釋一下你正在試圖做的(你查詢應該返回什麼)你的問題是什麼,這樣的人有類似問題可以找到在未來這個問題。 (也可以幫助那些熟悉sqlite但不熟悉mysql的人給你一個答案。) – Mat