Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/MySQL组内排序_Php_Mysql_Group By_Sql Order By - Fatal编程技术网

PHP/MySQL组内排序

PHP/MySQL组内排序,php,mysql,group-by,sql-order-by,Php,Mysql,Group By,Sql Order By,我有一个案例,我必须将表格中的结果按品牌分组,然后按其他列排序 我从阵列中获得我的品牌。 问题是,当我按品牌分组时,该组是按组内的ID排序的。 有没有办法按组内顺序排序 这是我的数组和mysql查询 $laptop_brands = array("Acer", "Apple", "Dell", "HP-Compaq", "IBM-Lenovo", "Sony", "Toshiba", "ASUS", "Fujitsu", "Gateway"); $get_videos_query = "SEL

我有一个案例,我必须将表格中的结果按品牌分组,然后按其他列排序

我从阵列中获得我的品牌。 问题是,当我按品牌分组时,该组是按组内的ID排序的。 有没有办法按组内顺序排序

这是我的数组和mysql查询

$laptop_brands = array("Acer", "Apple", "Dell", "HP-Compaq", "IBM-Lenovo", "Sony", "Toshiba", "ASUS", "Fujitsu", "Gateway");

$get_videos_query = "SELECT * FROM users_video WHERE location = 'location_1' AND brand IN ('" . implode("','", $laptop_brands) . '\') GROUP BY brand ORDER BY FIELD (brand, "Acer", "Apple", "Dell", "HP-Compaq", "IBM-Lenovo", "Sony", "Toshiba", "ASUS", "Fujitsu", "Gateway"), official DESC';
从中选择* 从用户视频中选择*位置='location\u 1'和brand IN'。内爆“,”,>$laptop\u品牌。“\”按品牌分组为P 按现场品牌、宏碁、苹果、戴尔、惠普康柏、IBM联想、索尼、东芝、华硕、富士通、Gateway、官方描述订购

您可以从结果中进行选择,然后对它们进行排序

我找到了解决方案。 谢谢大家的留言和想法

这就是我用来获得正确结果的查询:

$laptop_brands = array("Acer", "Apple", "Dell", "HP-Compaq", "IBM-Lenovo", "Sony", "Toshiba", "ASUS", "Fujitsu", "Gateway");


$query = "SELECT * FROM (SELECT * FROM users_video WHERE location = 'location_1' AND brand  IN ('" . implode("','", $laptop_brands) . '\') ORDER BY official DESC) as my_table_tmp GROUP BY brand ORDER BY FIELD (brand, "Acer", "Apple", "Dell", "HP-Compaq", "IBM-Lenovo", "Sony", "Toshiba", "ASUS", "Fujitsu", "Gateway")';

Thx all,特别是对morteza kavakebi,你是说你想先按官方订单,然后按品牌订单吗?不,我想先按阵列订单,然后按品牌分组,然后按官方栏目一起订单。正式列包含1或0。因此,我想按此数组进行排序,按品牌分组,然后在正式列中首先显示包含1的所有元素。有意义吗?结果的排序在聚合之后完成,因此您指定的顺序不会影响分组结果。根据我对您的解释的理解,您正在试图修改GROUP BY将通过排序返回的内容。。。哪种方法不行,有没有其他方法来实现这个目标?某种解决方法?您的查询没有多大意义。如何选择*。。。按品牌分组暂时忽略订单?您是否希望每个品牌只有一个随机行,通过数组排序,然后按官方排序?Thx作为回复,但我得到相同的结果:是否有>符号?为了让查询正常工作,我必须删除它们。