Intenté insertar un número en mi base de datos, que debería comenzar con 100. A continuación se muestra mi consulta que intenté insertar en mi base de datos, pero se muestra cada vez con una no por 101.

INSERT INTO jps_final_tickets(ft_ticket_number, ft_event, ft_package_id, ft_contact_person)
                SELECT COUNT(ft_ticket_number)+1, '$eventID' AS ft_event, '$ticketID' AS ft_package_id, '$contactPerson' AS ft_contact_person,
                FROM jps_final_tickets WHERE ft_package_id = '$ticketID'

La consulta anterior que muestra la salida siguiente, todo está bien, pero el número de ticket debe comenzar desde la serie 100.

-------------------------------------------------
| Ticket Number | event ID | Ticket Id | Name    |
|     1         |   645    |   70      | Santosh |
|     2         |   645    |   70      | Sandeep |
|     1         |   645    |   71      | Sahil   |
|     1         |   645    |   72      | Jagveer |
--------------------------------------------------

Siguiente salida que quiero:

-------------------------------------------------
| Ticket Number | event ID | Ticket Id | Name    |
|     101       |   645    |   70      | Santosh |
|     102       |   645    |   70      | Sandeep |
|     101       |   645    |   71      | Sahil   |
|     101       |   645    |   72      | Jagveer |
--------------------------------------------------

Ayúdame, ¿cómo puedo insertar el número de ticket anterior en mi tabla?

0
Santosh Khatri 29 dic. 2016 a las 16:02

3 respuestas

La mejor respuesta

Simplemente incremente el contador en 101.

 SELECT COUNT(ft_ticket_number) + 101

Explicación detallada:

Inicialmente no hay registros para, digamos, el ticket ID 70

COUNT(ft_ticket_number) devolverá 0 para el Id. De ticket 70. Entonces, el primer valor será 0 + 101 = 101

La siguiente tabla de tiempo ya tiene 1 registro. Entonces COUNT(ft_ticket_number) devolverá 1, que calculará el Número de ticket como 1 + 101 = 102 y así sucesivamente.

El contador se reiniciará automáticamente para el nuevo Id. De ticket.

1
Samir 29 dic. 2016 a las 13:30

Esto sería apropiado para ti ...

INSERT INTO jps_final_tickets(ft_ticket_number, ft_event, ft_package_id, ft_contact_person)
                    SELECT COUNT(ft_ticket_number)+101, '$eventID' AS ft_event, '$ticketID' AS ft_package_id, '$contactPerson' AS ft_contact_person,
                    FROM jps_final_tickets WHERE ft_package_id = '$ticketID'
1
Jaimin 29 dic. 2016 a las 13:08

¿Qué hay de decirle mysql directamente? Si hace ticket_number un valor de incremento automático a partir de 100.

Si jps_ticket_number es su clave principal, esto funcionará.

ALTER TABLE jps_final_tickets AUTO_INCREMENT=100;
0
cb0 29 dic. 2016 a las 13:09