我有一个可以完美运行的MySQL查询,直到向它添加POW函数为止。我不明白为什么会收到此错误。我试图用谷歌搜索它,但想出一个解决方案却空无一物。
原始查询:
SELECT 86400 /
(NOW() - `created_at`) *
(
(
SELECT COUNT(`Votes`.`voteID`)
FROM `Votes`
WHERE `postID` = `Posts`.`postID`
LIMIT 1
)
+ 0
* 5
) AS `rank`
FROM `Posts`
用POW()查询:
SELECT POW(
86400
/ (NOW() - `created_at`)
*
(
(
SELECT COUNT(`Votes`.`voteID`)
FROM `Votes`
WHERE `postID` = `Posts`.`postID`
LIMIT 1
)
+ 0
* 5
),
1.8
) AS `rank`
FROM `Posts`
我得到的错误是 #2014 - Commands out of sync; you can't run this command now
我尝试了奥利·琼斯(Ollie Jones)的建议,对我来说非常有效!
您可能
POW()
通过向其传递一个荒谬的大的或非数字的第一个参数来暴露错误。(NOW() - created_at)
可能没有按照您的想法去做。UNIX_TIMESTAMP() - UNIX_TIMESTAMP(created_at)
如果希望进行时差计算,则可能需要几秒钟的时间。–奥利·琼斯(Ollie Jones)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句