有没有更有效的方法在mysql中实现同样的功能(通过php)
我有下面的代码,可能的拼写错误应该选择3列,第一列是排名,反对和损失的百分比有没有更有效的方法在mysql中实现同样的功能(通过php),php,mysql,Php,Mysql,我有下面的代码,可能的拼写错误应该选择3列,第一列是排名,反对和损失的百分比 SELECT COUNT(B.F_FACTOR) AS RANK, A.F_OPPOSITION, A.F_FACTOR FROM ( SELECT F_OPPOSITION, IF(SUM(F_RESULT='L',=1,1,0) AS F_NUM, IF(SUM(F_RESULT IN ('
SELECT COUNT(B.F_FACTOR) AS RANK, A.F_OPPOSITION, A.F_FACTOR
FROM
(
SELECT
F_OPPOSITION,
IF(SUM(F_RESULT='L',=1,1,0) AS F_NUM,
IF(SUM(F_RESULT IN ('W','D','L'),=1,1,0) AS F_DENOM,
ROUND(SUM(F_NUM/F_DENOM),2) AS F_FACTOR
FROM $table
GROUP BY F_OPPOSITION
) A,
(
SELECT
F_OPPOSITION,
IF(SUM(F_RESULT='L',=1,=1,=0) AS F_NUM,
IF(SUM(F_RESULT IN ('W','D','L'),=1,=1,=0) AS F_DENOM,
ROUND(SUM(F_NUM/F_DENOM),2) AS F_FACTOR
FROM $table
GROUP BY F_OPPOSITION
) B
WHERE A.F_FACTOR <= B.F_FACTOR
OR (A.F_FACTOR=B.F_FACTOR AND A.F_OPPOSITION=B.F_OPPOSITION)
GROUP BY A.F_OPPOSITION, F_FACTOR
ORDER BY A.F_RANK ASC, A.F_FACTOR DESC, A.F_OPPOSITION DESC;
我可能会将其作为cron作业运行,每晚更新一个表,然后从该表中执行基本的select x,y,z,以使用php将其显示到屏幕上,我可能会这样做
但是,从sql的角度来说,要获得相同的输出,无论是在键入还是在处理方面,他们的学习速度更快/更容易
谢谢。在数据库中操作结果几乎总是比在本例中使用服务器端语言PHP实现相同的结果要快。所以只需运行一个crontab。添加了cron作业来更新每晚创建的表,处理时间可以忽略不计 是的,我同意,这是我将采取的方法,但这不是我想要的问题的答案,有没有更快的方法纠正上述陈述,以获得相同的输出?