我有如下查询
SELECT * FROM content_type_product cp
JOIN content_field_product_manufacturer cf ON cf.nid = cp.nid group by cp.nid
ORDER
BY field(cf.field_product_manufacturer_value,'12') DESC,
cp.field_product_price_value DESC
这工作完美,只是一个小缺陷,有两条记录具有相同的 id(一条用于 cf.field_product_manufacturer_value='12',另一条用于 cf.field_product_manufacturer_value ='57'),我使用 group by 子句消除了它们。但问题是我想获得具有更大“field_product_price_value”的特定id,但不知何故它给了我较小的值。如果我查询“57”,那么它会为我提供具有更大 field_product_price_value 的 id,但是当我查询“12”时,它会为我提供较小“field_product_price_value”的 id。有什么方法可以指定选择具有更大“field_product_price_value”的 id
最佳答案
您应该将 max(field_product_price_value)
与适当的 GROUP BY 子句结合使用。
一般来说,仅当您在查询中同时选择普通列和聚合函数(MIN、MAX、COUNT、AVG
)时,才应使用 GROUP BY
子句。
关于mysql - MYSQL 中相对于另一列的条件不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12782649/