
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
28.09.2016, 16:23
|
|||
|---|---|---|---|
|
|||
Замена в sql-запросе |
|||
|
#18+
Добрый день! Помогите, пожалуйста. Имеет БД номеров телефонов клиентов компании, сейчас написание телефонов такого вида 9-999-999-99-99. Каким запросом я мог бы удалить все тире из номера? Телефонов много, поэтому хотелось бы чтобы действие применилось ко всем записям телефонов.Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.09.2016, 16:33
|
|||
|---|---|---|---|
|
|||
Замена в sql-запросе |
|||
|
#18+
wadman, MySQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.09.2016, 16:37
|
|||
|---|---|---|---|
|
|||
Замена в sql-запросе |
|||
|
#18+
Да, я уже начитался про 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; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.09.2016, 17:30
|
|||
|---|---|---|---|
|
|||
Замена в sql-запросе |
|||
|
#18+
Я сделал. Может кому пригодится.. UPDATE users SET mobile_telephone = REPLACE('mobile_telephone', '-', '') WHERE users.id>0 Тем самым убрал ВСЕ тире из ВСЕХ номеров телефонов. У меня еще вопрос. Как можно дописать к номеру 9999999999 дописать +7 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.09.2016, 18:20
|
|||
|---|---|---|---|
Замена в sql-запросе |
|||
|
#18+
fixfixУ меня еще вопрос. Как можно дописать к номеру 9999999999 дописать +7 ? Аналогично предыдущему, только проверяй содержит строка цифру или нет. Если содержит то добавляй, если нет то пропускай (могут по идее быть и пустые строки наверное). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.09.2016, 18:30
|
|||
|---|---|---|---|
Замена в sql-запросе |
|||
|
#18+
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 IN (2,3,4,7,8,9,20,21,32,33,34,36,37,38,39,41,42,43,44,45,47,48) ) Модератор: Тема перенесена из форума "Вопрос-Ответ". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.09.2016, 11:11
|
|||
|---|---|---|---|
|
|||
Замена в sql-запросе |
|||
|
#18+
Может еще кому пригодится.. авторUPDATE users SET mobile_telephone = CONCAT('+7',users.mobile_telephone) WHERE users.id>0 AND users.mobile_telephone NOT LIKE '' Тем самым добавил ко всем номерам +7 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.09.2016, 11:11
|
|||
|---|---|---|---|
|
|||
Замена в sql-запросе |
|||
|
#18+
Спасибо всем кто откликнулся! Добра! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.09.2016, 11:13
|
|||
|---|---|---|---|
Замена в sql-запросе |
|||
|
#18+
А теперь проверь длину этого поля без пробелов. Чтоб номера были корректны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.09.2016, 14:19
|
|||
|---|---|---|---|
|
|||
Замена в sql-запросе |
|||
|
#18+
Проверил пробелы по краям записи данным способом авторUPDATE users SET users.mobile_telephone = TRIM(users.mobile_telephone) WHERE users.id>0 Внутри самой записи пробелов нет :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.09.2016, 14:21
|
|||
|---|---|---|---|
Замена в sql-запросе |
|||
|
#18+
Это ты пробелы убрал. А теперь длину проверь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.09.2016, 14:39
|
|||
|---|---|---|---|
|
|||
Замена в sql-запросе |
|||
|
#18+
Знать бы еще как это сделать.. Сейчас почитаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.09.2016, 15:07
|
|||
|---|---|---|---|
|
|||
Замена в sql-запросе |
|||
|
#18+
Проверенный рабочий запрос. Выводит все строки, длинна которых больше 12 символов, сортировка по полю id. авторSELECT users.id FROM users WHERE CHARACTER_LENGTH(mobile_telephone)>12 ORDER BY users.id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.09.2016, 15:57
|
|||
|---|---|---|---|
|
|||
Замена в sql-запросе |
|||
|
#18+
Вообще не могу понять одну вещь - во всех мануалах sql пишется про параметр LEN(), при этом MySQL и Workbench на него ругаются. Данные СУБД отлично работают с параметром CHARACTER_LENGTH. ps спасибо еще раз за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.09.2016, 17:32
|
|||
|---|---|---|---|
Замена в sql-запросе |
|||
|
#18+
fixfixво всех мануалах sql пишется про параметр LEN() Вот мануал . Ышшы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.09.2016, 21:12
|
|||
|---|---|---|---|
Замена в sql-запросе |
|||
|
#18+
fixfixЛадно, не буду забрасывать ссылками :-) Мануал есть только один. С точностью до версии. А всё остальное, что ему противоречит, есть голимый бред безграмотных дилетантов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.09.2016, 02:23
|
|||
|---|---|---|---|
Замена в sql-запросе |
|||
|
#18+
fixfixПроверенный рабочий запрос. Выводит все строки, длинна которых больше 12 символов, сортировка по полю id. авторSELECT users.id FROM users WHERE CHARACTER_LENGTH(mobile_telephone)>12 ORDER BY users.id <>12 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2016, 11:47
|
|||
|---|---|---|---|
|
|||
Замена в sql-запросе |
|||
|
#18+
Ребятки, снова все привет! Не буду плодить темы, спрошу здесь. Есть столбец "balance", в каждой строке указывается текущий баланс для клиента в виде "29.312512341". Подскажите, как мне обрезать все значения после точки чтобы каждая запись в столбце приняла вид просто "29" без этих длинны копеек. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2016, 12:17
|
|||
|---|---|---|---|
Замена в sql-запросе |
|||
|
#18+
fixfixв каждой строке указывается текущий баланс для клиента в виде "29.312512341".Баланс в строковом поле??? Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2016, 15:42
|
|||
|---|---|---|---|
|
|||
Замена в sql-запросе |
|||
|
#18+
miksoft, извините, я не понял что значит "в строковом поле" Сделал как вы указали, ничего не поменялось. После точки так и пишется куча цифр. авторSELECT balance FROM accounts WHERE substring_index(balance,'.',1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2016, 16:01
|
|||
|---|---|---|---|
|
|||
Замена в sql-запросе |
|||
|
#18+
Есть столбец balance, вид следующий: id balance 1 25.312312356 2 4.341225664 3 556.321562032 4 1.52351201103 ........и так далее Мне нужно обрезать точку и всё что после нее идет. Есть мысли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&tablet=1&tid=1831359]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 323ms |

| 0 / 0 |
