with primary not into index createtable create mysql sql

primary - mysql workbench



orden de mysql por una lista fija (1)

Voy a tener una lista fija de artículos para ordenar, que no sabré hasta que no ejecute la consulta ya que hay un paso de aleatorización.

Me gustaría tener algo como lo siguiente:

asuma que is_launch_set devolverá 1,3,7,11 pero se ha aleatorizado a continuación:

select * from items where is_launch_set=1 order by id values (3,11,7,1);

¿Alguna idea sobre cómo lograr esto? Estaba pensando que tal vez un find_in_set pero no estoy realmente seguro.


Puedes hacerlo usando:

ORDER BY FIND_IN_SET(id, ''3,11,7,1'')

o

ORDER BY FIELD(id, 3, 11, 7, 1)

o

ORDER BY CASE id WHEN 3 THEN 0 WHEN 11 THEN 1 WHEN 7 THEN 2 WHEN 1 THEN 3 ELSE 4 END