Tôi đã phạm sai lầm và đã nhập:SQL với LIMIT1 trả về tất cả các hồ sơ
SELECT * FROM table LIMIT1
thay vì
SELECT * FROM table LIMIT 1
(lưu ý khoảng cách giữa LIMIT
và 1
)
trong CLI của MySQL . Tôi dự kiến sẽ nhận được một số loại lỗi phân tích cú pháp, nhưng tôi đã rất ngạc nhiên, bởi vì truy vấn trả về tất cả các bản ghi trong bảng. Suy nghĩ đầu tiên của tôi là "MySQL ngu ngốc, tôi đặt cược rằng điều này sẽ trả về lỗi trong PostgreSQL", nhưng PostgreSQL cũng trả về tất cả các bản ghi. Sau đó kiểm tra nó bằng SQLite - với cùng một kết quả.
Sau khi đào một số, tôi nhận ra rằng không quan trọng những gì tôi nhập sau bảng. Chừng nào không có WHERE/ORDER/GROUP
khoản:
SELECT * FROM table SOMETHING -- works and returns all records in table
SELECT * FROM table WHERE true SOMETHING -- doesn't work - returns parse error
Tôi đoán rằng đây là một hành vi tiêu chuẩn, nhưng tôi không thể tìm thấy bất kỳ lời giải thích lý do tại sao là vậy. Bất kỳ ý tưởng?
Bạn có thể đưa ra bất cứ bảng một bí danh trong một truy vấn. Điều này cho phép bạn tự tham gia (chỉ định cùng một bảng nhiều lần). –
@ NikolaMarkovinović Spot on.OP đã đặt bí danh 'bảng' là' LIMIT1' Bạn nên đăng câu trả lời. –
Đề xuất thẻ duy nhất thuộc về đây là 'sql' – Smandoli