我犯了一個錯誤,並進入:SQL與LIMIT1返回所有記錄
SELECT * FROM table LIMIT1
,而不是
SELECT * FROM table LIMIT 1
(注意LIMIT
和1
之間的空間)
在MySQL的CLI 。我期望收到某種解析錯誤,但我很驚訝,因爲查詢返回了表中的所有記錄。我的第一個想法是「愚蠢的MySQL,我敢打賭,這將在PostgreSQL中返回錯誤」,但是PostgreSQL也返回了所有記錄。然後用SQLite對其進行測試 - 結果相同。
經過一番挖掘,我意識到,無論我在桌子後面輸入什麼東西都沒有關係。只要沒有WHERE/ORDER/GROUP
條款:
SELECT * FROM table SOMETHING -- works and returns all records in table
SELECT * FROM table WHERE true SOMETHING -- doesn't work - returns parse error
我想,這是一個標準的行爲,但我找不到任何的解釋,爲什麼就是這樣。有任何想法嗎?
你可以給任何表在查詢中的別名。這使您可以進行自聯接(多次指定同一個表)。 – 2012-07-11 12:53:02
@NikolaMarkovinovićSpot on。OP將'table'設置爲'LIMIT1',您應該將其作爲答案發布。 – 2012-07-11 12:53:48
建議這裏屬於的唯一標籤是'sql' – Smandoli 2012-07-11 13:05:27