MySQL добавить, префикс диапазона чисел с 0 - PullRequest
2 голосов
/ 02 августа 2009

У меня около нескольких тысяч строк, в которых содержатся 3-значные числа, начиная с 100 и заканчивая 199, и мне нужно добавить префикс к 0. Есть также тысячи других чисел, а также 4-значные номера, которые я не хочу изменить.

Мне нужно найти все 3-значные числа в диапазоне и префиксировать только те, которые находятся в диапазоне от 100 до 199 с 0, так как они представляют собой 4 цифры, например, 100> 0100, 104> 0104 и так далее. Также эти числа могут шагать, например, 110 следующий - 124.

Есть ли способ сделать это с помощью SQL? как мне не хочется менять их вручную!

Большое спасибо

Ответы [ 2 ]

6 голосов
/ 02 августа 2009

Функция LPAD - это то, что вы ищете. Вы можете использовать это в своем запросе для добавления чисел на лету.

SELECT LPAD(CONVERT(num AS CHAR), 4, '0') FROM tbl WHERE num > 99 AND num < 200

Если вы предпочитаете делать это на стороне сценария, str_pad сделает то же самое в php.

6 голосов
/ 02 августа 2009

Лучше всего это сделать с помощью языка программирования. Тем не менее, вот SQL-запрос, который обновит все существующие числа:

UPDATE tableName SET fieldName = right(concat('0000',fieldName), 4) WHERE length(fieldName) < 4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...