Consulta Mysql: cree una relación cliente / agente en la que cada cliente tendrá orden / posición / prioridad para manejar

Tengo que crear una relación cliente / agente, en la que cada agente pueda manejar 100 clientes, y cada cliente tendrá orden / posición / prioridad manejar. Y cuando actualizo el orden / posición / prioridad a alguna otra prioridad.

Por ejemplo, de 5 a 25, la posición ya ocupada del cliente debe bajar un paso 24, de modo que luego del 24 al 23 pasará al 6º. El cliente pasa al 5º.

Entonces, ¿hay alguna forma de tener una consulta sql personalizada o un script php (el bucle For puede hacer eso, pero quiero algo más si es posible)) para manejar esta situación.

preguntado el 08 de enero de 11 a las 22:01

2 Respuestas

UPDATE yourTable SET priority = priority + 1 WHERE priority >= 24
UPDATE yourTable SET priority = 24 WHERE priority = 5
UPDATE yourTable SET priority = priority - 1 WHERE priority > 5

Preferablu debe hacerse dentro de una transacción.

Respondido el 09 de enero de 11 a las 01:01

Excelente y rápida respuesta. Gracias por tu respuesta Mchl. - Elamurugan

También esto puede hacer eso. actualizar customer_agent set position = position -1 donde position <= $ targetValue y position> $ currentValue actualizar customer_agent set position = $ targetValue donde position = $ currentValue. ¿Alguien sabe cómo combinar estas dos consultas en una consulta de actualización? Elamurugan

¿Algo como esto funcionaría para ti?

ACTUALIZAR el cliente SET position = position-1 WHERE position> $ position_open

Respondido el 09 de enero de 11 a las 01:01

Oh, esto funcionaría si saca a un cliente de la cola y $ position_open es la posición que solía ocupar el cliente. Si está moviendo al cliente a una posición diferente en la cola, entonces la solución de Mchl se ve mejor. - arlomedia

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.