Tengo una tabla con digamos 20 filas cada una con un número para el orden de visualización (1-20).Actualizando el orden de visualización de múltiples filas de MySQL en una o muy pocas consultas
SELECT * FROM `mytable` ORDER BY `display_order` DESC;
Desde un área de administración puede arrastrar las filas o escribir un nuevo número manualmente para cada fila.
Seguramente no es bueno repetir una consulta de ACTUALIZACIÓN para cada fila, ¿cuál es una alternativa en una o muy pocas consultas adecuadas para actualizar una celda en 20 filas o incluso más, 50-200 +?
Editar: Un montón de buenas respuestas e ideas. Es posible que amplíe las ideas que he considerado hasta ahora:
Una cadena de matriz: podría tener el orden en una cadena que enumere las ID de fila únicas en el orden que deseo, por ejemplo, las filas 1,9,2, 6,23. Cuando la orden se actualiza, unas actualizaciones campo oculto con JavaScript y añade que a la base de datos o un archivo de texto cuando termina:
UPDATE `my_dispaly_order_table` SET `display_order`='1,9,2,6,23';
actualización de cada fila individual: Esto es lo que estaba tratando de evitar, pero sería sólo puede ser cambiado con muy poca frecuencia tan 20-30 llamadas en un solo golpe una vez a la semana o mes no puede ser un problema por lo que simplemente llamando UPDATE en cada fila es lo que suele hacer:
UPDATE `mytable` SET `display_order`='1' WHERE `rowId` = 1;
UPDATE `mytable` SET `display_order`='2' WHERE `rowId` = 9;
UPDATE `mytable` SET `display_order`='3' WHERE `rowId` = 2;
UPDATE `mytable` SET `display_order`='4' WHERE `rowId` = 6;
UPDATE `mytable` SET `display_order`='5' WHERE `rowId` = 23;
este es un problema de lista enlazada. tal vez implica un cambio de esquema. – Randy