Mysql 在where子句中包含PHP函数?
我想在WHERE子句中使用Mysql 在where子句中包含PHP函数?,mysql,Mysql,我想在WHERE子句中使用布局,但我得到错误:WHERE子句中的未知列 SELECT ID, floor(SUM(Rating) / COUNT(*)) AS `floorRating` FROM `Reviews` WHERE floorRating = 1 GROUP BY `ID` 我也试过了,但没有成功: SELECT ID, FROM `Reviews` WHERE floor(SUM(Rating) / COUNT(*)) = 1 GROUP BY `ID` 在这种情况下,我
布局
,但我得到错误:WHERE子句中的未知列
SELECT ID,
floor(SUM(Rating) / COUNT(*)) AS `floorRating`
FROM `Reviews`
WHERE floorRating = 1
GROUP BY `ID`
我也试过了,但没有成功:
SELECT ID,
FROM `Reviews`
WHERE floor(SUM(Rating) / COUNT(*)) = 1
GROUP BY `ID`
在这种情况下,我得到了组函数的无效使用
我如何才能让这种查询工作?它不能是任何PHP函数,必须是MYSQL函数。你很幸运,因为地板也存在
中的不起作用时,尝试使用
HAVING floorRating = 1
问题不在于您试图使用MySQL函数FLOOR
,而是您不能在WHERE
子句中使用列别名(尽管您不能在MySQL中使用PHP函数-它是另一种语言)
这是因为WHERE
子句在SELECT
s和其他语句之前进行了求值,这意味着它在处理其他语句之前知道要处理哪些行(以简化)
在这些情况下,您需要使用HAVING
,这将起作用 1应该是一个int而不是字符串(从外观上看),您可以使用HAVING
代替where,尽管它的性能不如where。