【发布时间】:2015-05-12 20:07:56
【问题描述】:
我一直在尝试编写一个查询来从表中选择所有记录,其中列值的总和在变量范围之间。
这是我到目前为止的想法:
$result = mysql_query(' SELECT * FROM table WHERE SUM(column) BETWEEN $Range1 AND $Range2 ORDER BY RAND());
但是,当我尝试使用 mysql_fetch_object 函数遍历上述查询时,它给了我一个常见错误(提供的参数不是有效结果)。我尝试了不同的编写方式,但仍然很短
所以我尝试使用你们提供的别名进行查询,但仍然得到同样的错误。
$result = mysql_query(' SELECT column1, SUM(column2) AS Total FROM table GROUP BY column1 HAVING Total BETWEEN $Range1 AND $Range11 ORDER BY RAND()');
【问题讨论】:
-
您不能在 WHERE 子句中使用聚合函数(例如
SUM()),如果没有GROUP BY,您只能获得整个表中该字段的总和。 -
请stop using
mysql_*functions。它们不再被维护并且是officially deprecated。改为了解 prepared statements,并考虑使用 PDO,it's not as hard as you think。
标签: php mysql variables select between