Php 使用带有组_concat的查询循环值,但显示最低价格

Php 使用带有组_concat的查询循环值,但显示最低价格,php,mysql,Php,Mysql,我使用下面的查询获取所有结果,然后对它们进行分组。一切都很好。我现在有多行相同的数据,但价格不同 在所有其他数据相同的情况下,如何执行相同的查询,但仅获取价格最低的行。我花了很多时间,但一点快乐都没有。请帮忙 $results = $wpdb->get_results($wpdb->prepare(" SELECT *, group_concat(date,':',SUBSTRING_INDEX(flights,'|',2),':',price,':',board,'

我使用下面的查询获取所有结果,然后对它们进行分组。一切都很好。我现在有多行相同的数据,但价格不同

在所有其他数据相同的情况下,如何执行相同的查询,但仅获取价格最低的行。我花了很多时间,但一点快乐都没有。请帮忙

$results = $wpdb->get_results($wpdb->prepare("    

SELECT *,   
group_concat(date,':',SUBSTRING_INDEX(flights,'|',2),':',price,':',board,':',$tablename.id separator ',') as itemx

FROM $tablename
WHERE post_type = 'product' 
GROUP BY brochure
LIMIT 20
"));   

大概你想要这样的东西:

SELECT t.*,   
FROM $tablename t
WHERE t.post_type = 'product' AND
      t.price = (SELECT MIN(t2.price)
                 FROM $tablename t2
                 WHERE t2.post_type = 'product' AND
                       t2.brochure = t.brochure
                );

这至少是一个构造正确的查询,可以获得每个手册的最低价格。

示例数据和所需结果会有所帮助
SELECT*
with
groupby
是一个失败的查询,在大多数数据库和较新版本的MySQL(使用默认选项)中都会失败。tks会给它一个机会