powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как вместо 1 вывести 000001
21 сообщений из 21, страница 1 из 1
Как вместо 1 вывести 000001
    #35267105
sanich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как средствами мускуля добавить нужное количество нулей перед чиловым полем, чтобы в итоге

из значений

1
10
100
1000

получилось

000001
000010
000100
001000

Это возможно средствами Mysql???
...
Рейтинг: 0 / 0
Как вместо 1 вывести 000001
    #35267459
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конвертировать число в строку и дополнить строку слева нулями до нужной длины.
Все делается встроенными SQL-функциями самого MySQL.
...
Рейтинг: 0 / 0
Как вместо 1 вывести 000001
    #35267475
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя на клиенте, скорей всего, будет проще. printf и всех делов.
...
Рейтинг: 0 / 0
Как вместо 1 вывести 000001
    #35268060
alexenin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RIGHT(CONCAT('0000000',`NUMBER`),6)
но лучше делать на клиенте
...
Рейтинг: 0 / 0
Как вместо 1 вывести 000001
    #35269864
xelaok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то атрибут колонки ZEROFILL никто не вспомнил. Вроде как то что надо автору. :)
...
Рейтинг: 0 / 0
Как вместо 1 вывести 000001
    #35269876
TheLion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор давно забыл про свой вопрос...
-------------------------------------------------------
Жить будем плохо. Но недолго...
...
Рейтинг: 0 / 0
Как вместо 1 вывести 000001
    #35269897
sanich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TheLionАвтор давно забыл про свой вопрос...
-------------------------------------------------------
Жить будем плохо. Но недолго...

нет не забыл!
...
Рейтинг: 0 / 0
Как вместо 1 вывести 000001
    #35269898
sanich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xelaokЧто-то атрибут колонки ZEROFILL никто не вспомнил. Вроде как то что надо автору. :)

Про ZEROFILL знаю, но мне этот вариант не подходит
...
Рейтинг: 0 / 0
Как вместо 1 вывести 000001
    #35269902
sanich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeninRIGHT(CONCAT('0000000',`NUMBER`),6)
но лучше делать на клиенте

А как лучше все таки на клиенте обрабатывать на php или mysql все таки

По идее фетч в пхп каждой строки+обработка (добавление нулей) будет дольше чем в mysql



Как считаете????
...
Рейтинг: 0 / 0
Как вместо 1 вывести 000001
    #35269927
TheLion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanichнет не забыл!
Это радует.
1.Про то, что клиент у вас на PHP, слышу впервые (ну может читал невнимательно...)
2.Быстрее и лучше - вещи разные.
3.Конечную обработку принципиально лучше делать на клиенте. Ведь клиент получает данные с сервера, а пироженое в глазури из них делать - как раз и предназначение клиента.
-------------------------------------------------------
Жить будем плохо. Но недолго...
...
Рейтинг: 0 / 0
Как вместо 1 вывести 000001
    #35269956
sanich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TheLion sanichнет не забыл!
Это радует.
1.Про то, что клиент у вас на PHP, слышу впервые (ну может читал невнимательно...)
2.Быстрее и лучше - вещи разные.
3.Конечную обработку принципиально лучше делать на клиенте. Ведь клиент получает данные с сервера, а пироженое в глазури из них делать - как раз и предназначение клиента.
-------------------------------------------------------
Жить будем плохо. Но недолго...

нет, меня интересует только скорость работы, как быстрее??
...
Рейтинг: 0 / 0
Как вместо 1 вывести 000001
    #35270539
Фотография Nick Anikin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanichА как лучше все таки на клиенте обрабатывать на php или mysql все таки

По идее фетч в пхп каждой строки+обработка (добавление нулей) будет дольше чем в mysqlА если нули добавлять в mysql, то фетчить не надо уже что ли каждую строку??
Само добавление нулей все равно где делать в плане скорости, если разница в скорости и будет, то несущественная по сравнению с другими затратами, не забивайте голову ерундой. Правильнее делать на клиенте, как уже сказали.
...
Рейтинг: 0 / 0
Как вместо 1 вывести 000001
    #35270629
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нуу… если добавлять нули на сервере, больше данных по сети качать придётся :)
...
Рейтинг: 0 / 0
Как вместо 1 вывести 000001
    #35270631
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так что быстрее на клиенте.
...
Рейтинг: 0 / 0
Как вместо 1 вывести 000001
    #35271064
alexenin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дополнение нулей делается очень часто для правильной сортировки чисел хранимых в символьном виде.
Сортировка готовых данных осуществляется быстрее (индекс на поле), чем преобразование, а потом сортировка.
Если заполнение нулями осуществляется на клиенте (php), то есть возможность сделать настраиваемый уровень заполнения (можно следать и на MySQL через ХП или ХФ), при этом необходимо заранее продумать ширину полей.
...
Рейтинг: 0 / 0
Как вместо 1 вывести 000001
    #35271097
Фотография Nick Anikin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а зачем хранить числа в символьном виде? особенно, когда их еще и сортировать надо
...
Рейтинг: 0 / 0
Как вместо 1 вывести 000001
    #35272574
TheLion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanichнет, меня интересует только скорость работы, как быстрее??
По идее должно быть быстрее на клиенте. Но в вашем случае разница если и будет, то, видимо, небольшая (см. предыдущих авторов, (+1))
Вопрос тут в другом: если вас сегодня интересует только скорость запроса, то завтра вы вполне можете столкнуться с тем, что все быстрые запросы почему-то стали работать медленно...
-------------------------------------------------------
Жить будем плохо. Но недолго...
...
Рейтинг: 0 / 0
Как вместо 1 вывести 000001
    #35274045
alexenin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nick Anikinа зачем хранить числа в символьном виде? особенно, когда их еще и сортировать надо
Полгода назад появилась необходимость добавить суффикс (0000001-34), при этом изменение произошло только в коде.
Думал добавление поля будет быстрым, но после 40 минут пришлось прервать выполнение, т.к. кончился обед. В таблице всего ~ 1 700 000 записей было.
...
Рейтинг: 0 / 0
Как вместо 1 вывести 000001
    #35274233
Фотография Nick Anikin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что вы называете "добавлением поля"?
...
Рейтинг: 0 / 0
Как вместо 1 вывести 000001
    #35274968
alexenin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nick Anikinчто вы называете "добавлением поля"?
Да, мои руки не успели за мыслями...
Первое решение было добавить поле для суффикса в той же таблице, но после неудачной попытки просто обновил поле номера документа приписав в конце нужный суффикс. Запрос выполнился за 15 минут.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как вместо 1 вывести 000001
    #39409826
Rombl4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дополнить любыми символами слева до нужного размера строки
Код: sql
1.
2.
3.
4.
SELECT
LPAD(t.num,6,'0')
FROM
table t
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как вместо 1 вывести 000001
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]