2010-07-01 116 views
2

所以我昨天問了一個類似的問題,得到了很好的迴應 - 我希望這次有同樣的運氣。我試圖創建的是MySQL查詢的分頁結果。我正在利用LIMIT。這是我的查詢。需要正確的SQL查詢幫助

SELECT 
    BookingInfo.ClinicID, BookingInfo.BookingDate, BookingInfo.BookingTime, 
    BookingInfo.Status, PatientBooking.FirstName, PatientBooking.LastName, 
    PatientBooking.DateOfBirth 
FROM BookingInfo 
    LEFT JOIN PatientBooking 
    ON BookingInfo.PatientID = PatientBooking.PatientID 
WHERE PatientBooking.FirstName = 'Brian' 
    AND PatientBooking.LastName = 'Lang' 
    AND (BookingInfo.ClinicID = '1' OR BookingInfo.ClinicID = '2') 
LIMIT '0, 20' 
ORDER BY BookingInfo.BookingDate DESC 

此查詢不起作用(但是,如果我刪除了限制'0,20'部分它工作得很好)。相反,我得到這個錯誤返回:#1064 - 你的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在第1行的'0,20'ORDER BY BookingInfo.BookingDate DESC'處使用正確的語法。

專家的任何想法?

回答

2

我認爲,限制應該來的訂單。但是什麼不行?

4

您的LIMIT子句不應加引號引起來。它應該只讀LIMIT 0, 20。引號通常保留給字符串。

另外,LIMIT子句必須出現在ORDER BY子句之後。有關詳細信息,請參閱SheepSimulator的答案。

Ref

+0

感謝您的提示,這對我來說是一種學習體驗。不幸的是,即使在調整了我的查詢之後,我仍然遇到了同樣的錯誤。有任何想法嗎? – 2010-07-01 23:00:53

+0

ClinicID是一個數字嗎?或者它真的是一個字符? – Nitrodist 2010-07-01 23:12:10

1
  1. LIMIT子句應位於ORDER BY子句之後。
  2. 它的格式是LIMIT 0, 20而不是LIMIT '0, 20'

參考:MySQL SELECT syntax