我试图在我的数据库中插入应该以 100 开头的数字。 以下是我尝试插入数据库的查询,但它每次都显示一个不是 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'
上面的查询显示以下输出,一切正常,但票号应从 100 系列开始。
-------------------------------------------------
| Ticket Number | event ID | Ticket Id | Name |
| 1 | 645 | 70 | Santosh |
| 2 | 645 | 70 | Sandeep |
| 1 | 645 | 71 | Sahil |
| 1 | 645 | 72 | Jagveer |
--------------------------------------------------
我想要的以下输出:
-------------------------------------------------
| Ticket Number | event ID | Ticket Id | Name |
| 101 | 645 | 70 | Santosh |
| 102 | 645 | 70 | Sandeep |
| 101 | 645 | 71 | Sahil |
| 101 | 645 | 72 | Jagveer |
--------------------------------------------------
请帮我如何在表格中插入上面的票号。
只需将计数器递增 101 即可。
SELECT COUNT(ft_ticket_number) + 101
详细说明:
最初没有记录,假设票证 ID 70
COUNT(ft_ticket_number)
将返回机票ID为70的0
。所以第一个值将是0 + 101 = 101
下一个时间表已有 1 条记录。因此,
COUNT(ft_ticket_number)
将返回1
,它将计算票号为1 + 101 = 102
,依此类推。计数器将自动重置新的票证ID。
这对你来说是合适的。
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'
直接告诉它mysql怎么样?如果ticket_number
从 100 开始自动递增值。
如果jps_ticket_number
是您的主键,这将起作用。
ALTER TABLE jps_final_tickets AUTO_INCREMENT=100;