Mysql 按优先顺序分组?

Mysql 按优先顺序分组?,mysql,group-by,Mysql,Group By,示例表: NAME, PRIORITY, SORT TEST1, 0, 11:10 TEST2, 1, 11:15 TEST3, 0, 11:20 TEST4, 1, 11:30 我想列出以下优先级列表,并将其排序为优先级: TEST2 (first submitted with priority) TEST1 TEST3 TEST4 怎么做?我试过与GROUP BY等合作,但没有成功 请试试这个 SELECT NAME FROM table WHERE PRIORITY

示例表:

NAME, PRIORITY, SORT
TEST1, 0, 11:10
TEST2, 1, 11:15
TEST3, 0, 11:20
TEST4, 1, 11:30
我想列出以下优先级列表,并将其排序为
优先级

TEST2 (first submitted with priority)
TEST1
TEST3
TEST4
怎么做?我试过与GROUP BY等合作,但没有成功

请试试这个

  SELECT NAME 
    FROM table
   WHERE PRIORITY = 1
ORDER BY TIME ASC
   LIMIT 1
UNION 
  SELECT NAME 
    FROM table
ORDER BY TIME ASC
那应该给你

TEST2 (first submitted with priority) TEST1 TEST3 TEST4
编辑忘记优先级请尝试此操作

  SELECT NAME 
    FROM table
   WHERE PRIORITY = 1
ORDER BY TIME ASC
   LIMIT 1
UNION 
  SELECT NAME 
    FROM table
ORDER BY TIME ASC
那应该给你

TEST2 (first submitted with priority) TEST1 TEST3 TEST4
根据您不能在一个并集的对侧有两个单独的顺序编辑优先级。但您可以做的是添加一个新列并按该列排序

该网站建议如下(虽然这是针对sql server的,但我不知道mysql是否使用相同的语法)

从priority=1的表中选择name、priority、sort、'1'OrderKey,并根据排序,在并集的对侧不能有两个单独的顺序。但您可以做的是添加一个新列并按该列排序

该网站建议如下(虽然这是针对sql server的,但我不知道mysql是否使用相同的语法)



从priority=1的表中选择name、priority、sort、'1'OrderKey并进行排序,以便您希望第一行是优先级为1的最早行,其余的按时间顺序排列?我不知道您的标准TEST4也有优先级,但在TEST1之后?@ChetterHummin正确!如果按优先级排序,正确的顺序应该是TEST2、TEST4、TEST1、test3这就是重点!我不是在命令我的优先权!第一行必须是具有优先级的第一行(取决于时间),然后所有行都按时间排序。你希望第一行是优先级为1的最早行,其余的按时间顺序排列吗?我不明白你的标准TEST4也具有优先级,但在TEST1之后?@ChetterHummin正确!如果按优先级排序,正确的顺序应该是TEST2、TEST4、TEST1、test3这就是重点!我不是在命令我的优先权!第一行必须是具有优先级的第一行(取决于时间),在所有行按时间排序之后,第二个查询不会从第一个查询中排除该行,因此将返回两次偶数。另外,联合两个查询是否尊重它们各自的顺序?(我从来没有试过这么做。)我不确定。应该有一个WHERE
优先级
添加@在MYSQL中,UNION通过default@PatashuUnion应该删除重复项,因为MySQL在调用表AFAIK时使用相同的索引合并。如果有问题,我们可以将id添加到查询中。@SKylineman。仅仅因为它看起来起作用并不意味着它真的起作用。不保证排序。第二个查询不会从第一个查询中排除该行,因此将返回两次偶数。另外,联合两个查询是否尊重它们各自的顺序?(我从来没有试过这么做。)我不确定。应该有一个WHERE
优先级
添加@在MYSQL中,UNION通过default@PatashuUnion应该删除重复项,因为MySQL在调用表AFAIK时使用相同的索引合并。如果有问题,我们可以将id添加到查询中。@SKylineman。仅仅因为它看起来起作用并不意味着它真的起作用。订购不保证。