powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Замена в sql-запросе
25 сообщений из 28, страница 1 из 2
Замена в sql-запросе
    #39317107
fixfix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Помогите, пожалуйста. Имеет БД номеров телефонов клиентов компании, сейчас написание телефонов такого вида 9-999-999-99-99. Каким запросом я мог бы удалить все тире из номера? Телефонов много, поэтому хотелось бы чтобы действие применилось ко всем записям телефонов.Спасибо!
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39317115
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СУБД какая?
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39317120
fixfix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,
MySQL
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39317123
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
REPLACE()
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39317126
fixfix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, я уже начитался про replace. Только понять не могу в какую часть кода его вставлять и как его зациклить, чтобы он применил действие во всех ячейках. Код следующий:
авторSELECT
accounts.id, users.mobile_telephone, accounts.balance
FROM
accounts INNER JOIN account_tariff_link INNER JOIN users
WHERE
account_tariff_link.account_id = accounts.id AND
accounts.id = users.id AND
accounts.balance >= 0 AND
users.mobile_telephone NOT LIKE '' AND
account_tariff_link.is_deleted = 0 AND (
account_tariff_link.tariff_id = 2 or
account_tariff_link.tariff_id = 3 or
account_tariff_link.tariff_id = 4 or
account_tariff_link.tariff_id = 7 or
account_tariff_link.tariff_id = 8 or
account_tariff_link.tariff_id = 9 or
account_tariff_link.tariff_id = 20 or
account_tariff_link.tariff_id = 21 or
account_tariff_link.tariff_id = 32 or
account_tariff_link.tariff_id = 33 or
account_tariff_link.tariff_id = 34 or
account_tariff_link.tariff_id = 36 or
account_tariff_link.tariff_id = 37 or
account_tariff_link.tariff_id = 38 or
account_tariff_link.tariff_id = 39 or
account_tariff_link.tariff_id = 41 or
account_tariff_link.tariff_id = 42 or
account_tariff_link.tariff_id = 43 or
account_tariff_link.tariff_id = 44 or
account_tariff_link.tariff_id = 45 or
account_tariff_link.tariff_id = 47 or
account_tariff_link.tariff_id = 48 )
GROUP BY accounts.id
ORDER BY accounts.id ASC;
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39317201
fixfix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я сделал. Может кому пригодится..
UPDATE users
SET mobile_telephone = REPLACE('mobile_telephone', '-', '')
WHERE users.id>0

Тем самым убрал ВСЕ тире из ВСЕХ номеров телефонов.

У меня еще вопрос. Как можно дописать к номеру 9999999999 дописать +7 ?
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39317232
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixfixУ меня еще вопрос. Как можно дописать к номеру 9999999999 дописать +7 ?
Аналогично предыдущему, только проверяй содержит строка цифру или нет. Если содержит то добавляй, если нет то пропускай (могут по идее быть и пустые строки наверное).
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39317242
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixfixк номеру 9999999999 дописать +7CONCAT()

fixfix
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
AND (
account_tariff_link.tariff_id = 2 or
account_tariff_link.tariff_id = 3 or
account_tariff_link.tariff_id = 4 or
account_tariff_link.tariff_id = 7 or
account_tariff_link.tariff_id = 8 or
account_tariff_link.tariff_id = 9 or
account_tariff_link.tariff_id = 20 or
account_tariff_link.tariff_id = 21 or
account_tariff_link.tariff_id = 32 or
account_tariff_link.tariff_id = 33 or
account_tariff_link.tariff_id = 34 or
account_tariff_link.tariff_id = 36 or
account_tariff_link.tariff_id = 37 or
account_tariff_link.tariff_id = 38 or
account_tariff_link.tariff_id = 39 or
account_tariff_link.tariff_id = 41 or
account_tariff_link.tariff_id = 42 or
account_tariff_link.tariff_id = 43 or
account_tariff_link.tariff_id = 44 or
account_tariff_link.tariff_id = 45 or
account_tariff_link.tariff_id = 47 or
account_tariff_link.tariff_id = 48 )


AND ( account_tariff_link.tariff_id IN (2,3,4,7,8,9,20,21,32,33,34,36,37,38,39,41,42,43,44,45,47,48) )

Модератор: Тема перенесена из форума "Вопрос-Ответ".
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39317627
fixfix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может еще кому пригодится..
авторUPDATE users
SET mobile_telephone = CONCAT('+7',users.mobile_telephone)
WHERE users.id>0 AND
users.mobile_telephone NOT LIKE ''

Тем самым добавил ко всем номерам +7
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39317630
fixfix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем кто откликнулся! Добра!
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39317632
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А теперь проверь длину этого поля без пробелов.
Чтоб номера были корректны
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39317843
fixfix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проверил пробелы по краям записи данным способом

авторUPDATE users
SET users.mobile_telephone = TRIM(users.mobile_telephone)
WHERE users.id>0

Внутри самой записи пробелов нет :-)
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39317846
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это ты пробелы убрал.
А теперь длину проверь
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39317872
fixfix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Знать бы еще как это сделать..
Сейчас почитаю.
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39317914
fixfix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проверенный рабочий запрос. Выводит все строки, длинна которых больше 12 символов, сортировка по полю id.
авторSELECT users.id
FROM users
WHERE CHARACTER_LENGTH(mobile_telephone)>12
ORDER BY users.id
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39317972
fixfix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще не могу понять одну вещь - во всех мануалах sql пишется про параметр LEN(), при этом MySQL и Workbench на него ругаются. Данные СУБД отлично работают с параметром CHARACTER_LENGTH.
ps спасибо еще раз за помощь!
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39318043
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixfixво всех мануалах sql пишется про параметр LEN()
Вот мануал . Ышшы...
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39318162
fixfix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот мануал . Ышшы...[/quot]

Ладно, не буду забрасывать ссылками :-)
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39318163
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixfixЛадно, не буду забрасывать ссылками :-)
Мануал есть только один. С точностью до версии. А всё остальное, что ему противоречит, есть голимый бред безграмотных дилетантов.
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39318256
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixfixПроверенный рабочий запрос. Выводит все строки, длинна которых больше 12 символов, сортировка по полю id.
авторSELECT users.id
FROM users
WHERE CHARACTER_LENGTH(mobile_telephone)>12
ORDER BY users.id

<>12
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39319505
fixfix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребятки, снова все привет! Не буду плодить темы, спрошу здесь. Есть столбец "balance", в каждой строке указывается текущий баланс для клиента в виде "29.312512341". Подскажите, как мне обрезать все значения после точки чтобы каждая запись в столбце приняла вид просто "29" без этих длинны копеек. Спасибо!
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39319528
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixfixв каждой строке указывается текущий баланс для клиента в виде "29.312512341".Баланс в строковом поле???
Код: sql
1.
SUBSTRING_INDEX(balance,'.',1)
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39319727
fixfix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,
извините, я не понял что значит "в строковом поле"
Сделал как вы указали, ничего не поменялось. После точки так и пишется куча цифр.
авторSELECT balance
FROM accounts
WHERE substring_index(balance,'.',1)
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39319760
fixfix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть столбец balance, вид следующий:
id balance
1 25.312312356
2 4.341225664
3 556.321562032
4 1.52351201103
........и так далее
Мне нужно обрезать точку и всё что после нее идет. Есть мысли?
...
Рейтинг: 0 / 0
Замена в sql-запросе
    #39319783
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ miksoft,
и REPLACE -ом убрать пробел-разделитель разрядов для пущей надежности
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Замена в sql-запросе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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