|
|
|
Преобразование строки в набор цифр
|
|||
|---|---|---|---|
|
#18+
Помогите, пожалуйста, с запросом типа: Код: sql 1. Поле "ocr_phone" типа tinytext может содержать строки вида: '8-8652-72-85-17, ( 8652 )72-85-17 , 7-8652-72-85-17 ' '72-85-17' '8-962-445-87-82 , ( 962 ) 758-74-85' и т.п., т.е. распознанные номера телефонов в разном формате. А параметр :p всегда строка вида '9624458782' или '728517', т.е. номер телефона в виде одних цифр, сотовые без +7/8, городские - без кода. Как выбрать id записей поле "ocr_phone" которых содержит параметр? PS подозреваю, что поможет оператор REGEXP, но не знаю как его применить в данном случае... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 11:34:52 |
|
||
|
Преобразование строки в набор цифр
|
|||
|---|---|---|---|
|
#18+
Используя пакет Replace-ов (или пользовательскую функцию), удаляешь из ocr_phone все разделители, кроме запятой, а потом тупо INSTR(). Но правильнее - нормализовать данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 13:56:33 |
|
||
|
Преобразование строки в набор цифр
|
|||
|---|---|---|---|
|
#18+
Пока решил так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Если не касаться вопроса нормализации, это корректное решение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 15:29:58 |
|
||
|
Преобразование строки в набор цифр
|
|||
|---|---|---|---|
|
#18+
LiYing, 1) Вместо char используйте varchar. Да и лимит длины можно взять побольше. 2) Запятые вы тоже уничтожите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 15:41:29 |
|
||
|
Преобразование строки в набор цифр
|
|||
|---|---|---|---|
|
#18+
miksoft, 1) Замена CHAR на VARCHAR ускорит выполнение функции? Макс.длина поля "ocr_phone" типа tinytext=255. 2) Запятые в плане задачи не важны, главное - факт нахождения подстроки, передаваемой в параметре, в строке поля "ocr_phone". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 15:48:44 |
|
||
|
Преобразование строки в набор цифр
|
|||
|---|---|---|---|
|
#18+
LiYing, 1) Скорее всего - да. 2) Тогда вы рискуете в качестве подстроки найти хвост одного номера и начало следующего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 15:53:59 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38766263&tid=1834134]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
118ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 452ms |

| 0 / 0 |
