Идея я хочу поделиться не является точным ответ на вопрос, но может быть полезен для некоторых, поэтому я хотел бы поделиться им.
Если вам часто нужен только ограниченный набор чисел, тогда полезно создать таблицу с числами, которые могут вам понадобиться, и просто использовать эту таблицу каждый раз. Например:
CREATE TABLE _numbers (num int);
INSERT _numbers VALUES (0), (1), (2), (3), ...;
Это может быть применен только при необходимости число ниже определенного разумного предела, так что не использовать его для генерации последовательности 1 ... 1 миллион, но может быть использовано для чисел 1 ... 10k, например.
Если у вас есть этот список номеров в _numbers
таблицы, то вы можете писать запросы, как это, для получения отдельных символов строки:
SELECT number, substr(name, num, 1)
FROM users
JOIN _numbers ON num < length(name)
WHERE user_id = 1234
ORDER BY num;
Если вам нужно большее количество, чем 10k, то вы можете присоединиться таблица для себя:
SELECT n1.num * 10000 + n2.num
FROM _numbers n1
JOIN _numbers n2
WHERE n1 < 100
ORDER BY n1.num * 10000 + n2.num; -- or just ORDER BY 1 meaning the first column
Вы хотите добавить это в существующие записи или в совершенно новую таблицу? – Sklivvz 2008-10-09 11:07:59
Это будет новый рекорд. – nicudotro 2008-10-09 11:10:40
Почему вы не можете использовать столбец auto_increment? – Rob 2008-10-09 14:10:26