我不知道如何对这个问题进行分类。模糊地说,它是关于在使用 php 脚本执行的 mysql 查询的 WHERE 子句中使用计算值。
这是场景 - 我有一个 mysql 表,其结构如下: table_id[int], item_id[int], item_ rating[int] 现在 item_ rating 列中可以有“1”或“0”值。 table_id 列设置为 auto_increment,item_id 列也可以有重复值。
所以典型的表格如下所示 -
table_id item_id item_rating
1 item1 1
2 item5 0
3 item1 1
4 item1 1
5 item5 1
6 item1 0
我打算对每个 item_id 做什么,我计算 item_ rating = 1 和 item_ rating = 0 的数量,然后取 item_ rating 值的差异来获得该项目的最终评级(final_item_ rating = item_ rating(值= 1) ) - item_ rating(值=0) ).
现在的问题是: 我有一个 php 脚本,它从这些表中获取值,然后显示根据“final_item_ rating”值订购的项目详细信息 - 类似于: select * from table_name order by Final_item_ rating desc
唯一的问题是,由于 Final_item_ rating 本身不是列,并且实际上基于查询的运行时值,因此我如何构建查询?
希望我的问题很清楚:)
最佳答案
此查询可能对您有帮助:
SELECT sum(item_rating) AS SumRatings
FROM table_name
WHERE item_rating=1
GROUP BY item_id
ORDER BY SumRatings;
关于php - 如何在 mysql php 中构建动态运行时查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6080209/