mysql - 根据同一行中的另一个 DISTINCT 列获取 DISTINCT 列

标签 mysql sql

我在一个名为 products 的表中有 4 列

id|p_name| p_img       |
1 | Xs   | xsmax.png   | 
2 | Xs   | xr.png      | 
3 | XR   | xs.png      | 

我想获得 p_name 的 DISTINCT 值并回显它的 p_img。所以我使用了下面的代码。

但是,它会显示所有 p_image,因为没有重复项。我想根据 p_name 显示。

SELECT DISTINCT product_name, product_img FROM products
while($row=mysqli_fetch_assoc($result)){

}

expected output
p_name| p_img       |
Xs    | xsmax.png   |  
XR    | xs.png      | 

最佳答案

似乎您需要在子查询中使用聚合:

SELECT product_name, product_img 
  FROM products
 WHERE (id, product_name) in
       ( SELECT MAX(id), product_name
           FROM products
          GROUP BY product_name   
       ) 

取决于 “所以我只想显示条目中的第一张图片并忽略其余图片。”

关于mysql - 根据同一行中的另一个 DISTINCT 列获取 DISTINCT 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57404461/

相关文章:

php - 为什么我的 sql 准备语句没有给出正确的响应?

java - 通过 servlet 在 oracle 中获取第 2 行、第 3 行....200 行的表

mysql - SQL IF 和 LEFT JOIN 导致数据库出现故障

php - MySQL:将表B中的多条记录链接到一行中表A的单个记录上

php - Symfony 从列中的下拉列表更新

mysql - mysql索引是否在更新时修改?

MySQL:简单的地理/空间查询

sql - 如何使用 ON DUPLICATE KEY UPDATE 插入 MySQL 表?

MySQL - 在存储过程中对 IF 语句条件使用 SELECT

mysql - SQL SELECT (MySQL) 中的条件检查功能?