я таблица, которая содержит столбец называется TICKET_ID и он содержит следующие значения:SQL-запрос, чтобы получить следующий доступный идентификатор из таблицы
ticket_id
STK0000000001
STK0000000002
STK0000000001
STK0000000003
STK0000000002
STK0000000001
Значение TICKET_ID будет повторяться в некоторых строках, так что это не является уникальным ,
Я использую этот запрос, чтобы получить следующий доступный идентификатор, но я не могу заставить его работать. Он всегда возвращает STK0000000002
.
Любая помощь приветствуется!
SQL:
SELECT
CONCAT('STK', LPAD(seq, 10, '0')) AS nextID
FROM
(SELECT
@seq:[email protected]+1 AS seq,
num
FROM
(SELECT
CAST(SUBSTR(ticket_id, 4) AS UNSIGNED) AS num
FROM
sma_support_tickets
UNION ALL
SELECT
MAX(CAST(SUBSTR(ticket_id, 4) AS UNSIGNED))+2 AS num
FROM
sma_support_tickets
ORDER BY
num) AS ids
CROSS JOIN
(SELECT @seq:=0) AS init
) AS pairs
WHERE
seq!=num
LIMIT 1
Вы можете хранить строку отдельно от целого? – Strawberry
Несомненно @Strawberry, база данных существует, и я помогаю с изменениями. Это было построено когда-то. – TheRealPapa
Если он всегда начинается с 'STK', полностью оставьте это из базы данных. Просто поместите его в пользовательский интерфейс, если хотите. – Barmar