需要正确的SQL查询帮助
问题描述:
所以我昨天问了一个类似的问题,得到了很好的回应 - 我希望这次有同样的运气。我试图创建的是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'处使用正确的语法。
专家的任何想法?
答
我认为,限制应该来的订单。但是什么不行?
答
您的LIMIT
子句不应加引号引起来。它应该只读LIMIT 0, 20
。引号通常保留给字符串。
另外,LIMIT
子句必须出现在ORDER BY
子句之后。有关详细信息,请参阅SheepSimulator的答案。
感谢您的提示,这对我来说是一种学习体验。不幸的是,即使在调整了我的查询之后,我仍然遇到了同样的错误。有任何想法吗? – 2010-07-01 23:00:53
ClinicID是一个数字吗?或者它真的是一个字符? – Nitrodist 2010-07-01 23:12:10