php - mysql返回GROUP BY查询中的最低列值

标签 php mysql

我在程序中使用这个查询已经有一段时间了,但它开始给我错误的结果。我期望为每个唯一的 LEVEL 返回一个列名称,然后返回该级别中找到的最低 z_index 值。

SELECT * FROM Conrad WHERE ProductID = '1' GROUP BY level ORDER BY z_index

它曾经返回这样的东西:

ProductID    level    z_index
==============================
   1          One       10
   1          Two       20
   1          Three     30

这是预期的结果。但它现在返回这个:

ProductID    level    z_index
==============================
   1          One       83
   1          Two       224
   1          Three     308

我仍然在每个级别获得一个,但它现在返回为该级别找到的任何 z_index 值。

是 MySql 中发生了某些变化还是我的查询一直都不好?

1 月 21 日星期六更新: 现在,当我添加更多我需要的列名时,查询返回 z_index 的正确值,但 file_name 和 file_loc 的值似乎来自第一行级别而不是包含正确 z_index 值的行。

是什么导致了这种情况的发生?

SELECT ProductID, level, min(z_index), file_name, file_loc FROM Conrad WHERE ProductID = '1' GROUP BY level ORDER BY z_index

ProductID    level    z_index   file_name   file_loc
====================================================
   1          One       10        wrong.png    ?
   1          Two       20        file.png     ?
   1          Three     30        names.png    ?

最佳答案

您的查询对于最小值没有错。尝试以下查询

SELECT ProductID
     , level
     , MIN(z_index) z_index
  FROM Conrad 
 WHERE ProductID = 1
 GROUP 
    BY ProductID
     , level 
 ORDER 
    BY z_index

关于php - mysql返回GROUP BY查询中的最低列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41703933/

相关文章:

Java程序和mySQL连接问题: No suitable driver found

php - UTF-8贯穿始终

php - 为什么不能使用内联 if 语句返回?

mysql - MySQL 中的 IF 语句输出

mysql - 在 Mojave 上使用 MySQL2 安装 Rails 失败

java - 我无法删除 mysql 表中的所有行

php - 从具有多对多关系的表中检索数据?

php - 为什么我的其中一列显示为空?

php - 为什么要提交这个表单?

php - mVc 世界中的 HTML 缩进