所以昨天我问了一个类似的问题,得到了很好的回应 - 我希望这次能有同样的运气。我正在尝试创建的是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'附近的正确语法
来自专家的任何想法?
答案 0 :(得分:4)
您的LIMIT
子句不应包含在引号中。它应该只读LIMIT 0, 20
。引号通常保留用于字符串。
此外,LIMIT
子句必须出现在ORDER BY
子句之后。有关详细信息,请参阅SheepSimulator的答案。
答案 1 :(得分:2)
我认为限制应该在订单之后。但那不起作用呢?
答案 2 :(得分:1)
您的ORDER子句应放在LIMIT子句之前。
答案 3 :(得分:1)
LIMIT 0, 20
而非LIMIT '0, 20'
。