w3school asc and mysql sql sorting mysqli round-robin

asc - ordenar por grupo especial de MySQL



order by mysql w3school (2)

La Tabla A muestra los resultados que tengo ejecutando el siguiente SQL en MySQL.

SELECT * FROM table WHERE MATCH (title) AGAINST (''marka tv'')

Tabla A

La Tabla B muestra los resultados que deseo obtener. Como puede ver, los grupos están en orden de todos contra todos.

Tabla B


Considere una subconsulta en una tabla derivada para calcular un número de grupo que se ordenará en la mesa final:

SELECT f.* FROM (SELECT t1.* , (SELECT count(*) FROM table t2 WHERE (t2.title <= t1.title) AND (t1.groups = t2.groups)) AS groupNo FROM table t1 WHERE MATCH (t1.title) AGAINST (''marka tv'') ) AS f ORDER BY groupNo, groups


Si entiendo la pregunta, quiere ordenar la salida para que los grupos estén en forma de turnos en lugar de ordenados. Puede hacerlo enumerando los valores dentro de cada grupo y luego usar esa información para ordenar:

SELECT t.* FROM (SELECT t.*, (@rn := if(@g = groups, @rn + 1, if(@g := groups, 1, 1) ) ) as rn FROM table t CROSS JOIN (SELECT @rn := 0, @g := '''') params WHERE MATCH (title) AGAINST (''marka tv'') ORDER BY groups ) t ORDER BY rn, groups;