我有以下查询
SELECT *
FROM (
(
SELECT
DATEDIFF( birthdate, CONCAT(YEAR(birthdate), '/1/1') ) AS Distance,
DATEDIFF( CURDATE(), CONCAT(YEAR(CURDATE()), '/1/1')) AS TodaysDistance,
db.Contact.*
FROM
db.Contact
WHERE
db.Contact.id IN (
SELECT
db.addressbook.contactid
FROM
db.addressbook
WHERE
db.addressbook.ownerid = 9
)
) AS DistanceTable
)
WHERE
ABS(DistanceTable.Distance - DistanceTable.TodaysDistance) <= 7
ORDER BY
ABS(DistanceTable.Distance - DistanceTable.TodaysDistance)
LIMIT 0, 10;
它会加载我的联系人列表表的生日,并在我的联系人列表中显示接下来的10个即将到来的生日。我的开发服务器是MySQL 5.0.51a,生产服务器是5.1.57,有没有机会出现版本问题?
编辑我确实在我的本地PC上模拟了完全相同的环境(相同的PHP版本,相同的MySQL版本甚至安装在运行Debian Lenny的虚拟机上,就像服务器一样,我一直都是这样的服务器上的问题,而在本地机器上的工作就像一个魅力)
我做的另一件事是在服务器的PhpMyAdmin工具上测试查询,它在那里工作正常,所以我猜这是PHP进程的凭据有问题,有什么想法吗?
答案 0 :(得分:1)
请在此处查看MySQL错误代码:http://dev.mysql.com/doc/refman/5.0/en/error-messages-server.html
确保您在开发服务器和生产服务器上具有相同的访问权限。您的错误代码对应于:
%s command denied to user '%s'@'%s' for table '%s'