需要有关正确SQL查询的帮助

时间:2010-07-01 22:53:52

标签: mysql

所以昨天我问了一个类似的问题,得到了很好的回应 - 我希望这次能有同样的运气。我正在尝试创建的是MySQL查询的分页结果。我正在利用LIMIT。这是我的询问。

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 

此查询不起作用(但是,如果我删除LIMIT'0,20'部分它可以正常工作)。相反,我得到了这个错误:#1064 - 你的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在第0行使用“0,20”ORDER BY BookingInfo.BookingDate DESC'附近的正确语法

来自专家的任何想法?

4 个答案:

答案 0 :(得分:4)

您的LIMIT子句不应包含在引号中。它应该只读LIMIT 0, 20。引号通常保留用于字符串。

此外,LIMIT子句必须出现在ORDER BY子句之后。有关详细信息,请参阅SheepSimulator的答案。

Ref

答案 1 :(得分:2)

我认为限制应该在订单之后。但那不起作用呢?

答案 2 :(得分:1)

您的ORDER子句应放在LIMIT子句之前。

查看MySQL syntax table for SELECT

答案 3 :(得分:1)

  1. LIMIT子句应该在ORDER BY子句之后。
  2. 格式为LIMIT 0, 20而非LIMIT '0, 20'
  3. 参考:MySQL SELECT syntax