|
Как запросом выбрать телефоны? | ☑ | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0
PR
24.06.14
✎
16:16
|
В базе в некой таблице, например таблице "Телефоны" с единственным полем "Телефон" типа строка (1000) хранятся телефоны.
В телефоне, кроме цифр могут присутствовать символы "(", ")", "-" и " ". Как запросом выбрать все номера телефонов по поисковой строке "123 4 5"? То есть строка поиска для ПОДОБНО должна быть такая "%1[(,),-, ,]2[(,),-, ,]3%4%5%". [(,),-, ,] — это символ "(", ")", "-", " " или отсутствие символа. Вопрос. Как задать в меске [(,),-, ,] возможность отсутствия символа? |
||||||||||
1
RomanYS
24.06.14
✎
16:34
|
или подобно %123%...
или подобно %1[]23%... или подобно %12[]3%... Свое мнение |
||||||||||
2
vicof
24.06.14
✎
16:35
|
А я бы регулярным выражениям скормил номера
|
||||||||||
3
PR
24.06.14
✎
16:36
|
(1) Не подойдет.
Блоков цифр может быть много. Например, 12 34 56 78. |
||||||||||
4
RomanYS
24.06.14
✎
16:40
|
(3) т.е. внутри блока между цифрами могут быть(не быть) по одному разделителю, а между блоками все что угодно?
|
||||||||||
5
hhhh
24.06.14
✎
16:43
|
(3) может два ПОДОБНО? в одной проверять на запрещенные символы, а в другой цифры
|
||||||||||
6
mikecool
24.06.14
✎
16:43
|
вроде регулярки уже скулем обрабатываются, прямой запрос к таблице, осталось только рег выражение написать
|
||||||||||
7
pavelul73
24.06.14
✎
16:48
|
а может сначала привести номера к одному формату? убрать все лишнее, наложить маску, когда вводят новый номер телефона, после этого вытащить номера не составит проблем
|
||||||||||
8
vicof
24.06.14
✎
16:49
|
(7) +1
|
||||||||||
9
acsent
24.06.14
✎
16:55
|
добавить в таблицу поле и привести номера к единому виду
|
||||||||||
10
ptiz
24.06.14
✎
16:58
|
Хранить в базе без лишних символов.
Есть простое решение... |
||||||||||
11
PR
24.06.14
✎
17:06
|
(4)Да
|
||||||||||
12
PR
24.06.14
✎
17:06
|
(5) Как?
|
||||||||||
13
PR
24.06.14
✎
17:07
|
(7) Нет
|
||||||||||
14
APXi
24.06.14
✎
17:15
|
хранить без спец символов, форматировать при выводе.
Есть простое решение... |
||||||||||
15
RomanYS
24.06.14
✎
17:30
|
(11) т.е. 2 разделителя подряд быть не может, например: ") "?
в любом случае правильные идеи в (7) и (9) |
||||||||||
16
PR
24.06.14
✎
17:32
|
(15) >>т.е. 2 разделителя подряд быть не может, например: ") "?
Нет >>в любом случае правильные идеи в (7) и (9) Я не спрашиваю, как решить эту задачу, я спрашиваю, можно ли и как получить в запросе данные при существующей таблице. |
||||||||||
17
RomanYS
24.06.14
✎
17:33
|
Как вариант запросом выбирать "%1%2%3%4%5%6%7%8%", а уже в выборке проверять повторно. Вряд ли в выборку будет попадать слишком много строк
|
||||||||||
18
PR
24.06.14
✎
17:35
|
(17) Не вариант. Нужно запросом. Динамический список, понимаешь :))
|
||||||||||
19
RomanYS
24.06.14
✎
17:39
|
(16)
>>Я не спрашиваю, как решить эту задачу, я спрашиваю, можно ли и как получить в запросе данные при существующей таблице. Это реальная задача или типа упражнения для кандидатов? Если реальная, то решение в (9) Если "Нужно запросом" - можно запрос формировать динамически(программно) по типу (0) - будет тормозно и глючно |
||||||||||
20
hhhh
24.06.14
✎
17:40
|
(18) тогда (17), а в выборке ничего не проверять.
|
||||||||||
21
PR
24.06.14
✎
17:56
|
(19) Реальная, но (9) не хочется.
|
||||||||||
22
PR
24.06.14
✎
17:57
|
(20) И что? Пусть делает неправильно?
|
||||||||||
23
acsent
24.06.14
✎
18:00
|
Только не забывай народную мудрость
---------------- Если у вас есть проблема, и вы собираетесь её решать с помощью регулярных выражений, тогда у вас будет уже две проблемы |
||||||||||
24
PR
24.06.14
✎
18:13
|
(23) Да я и не собирался, собственно
|
||||||||||
25
acsent
24.06.14
✎
18:14
|
(24) А что же ты тогда спрашивал в (0)
|
||||||||||
26
PR
24.06.14
✎
18:17
|
(25) А, пардон, тупанул, ну да, собираюсь.
А в чем проблема тогда? |
||||||||||
27
acsent
24.06.14
✎
18:18
|
(26) да не в чем. Просто народная мудрость на то и народная мудрость )))
|
||||||||||
28
vqwy
24.06.14
✎
18:19
|
Клиентскую базу копируешь себе?
|
||||||||||
29
PR
24.06.14
✎
18:23
|
(28) Эээ... это мне?
|
||||||||||
30
RomanYS
24.06.14
✎
19:11
|
(21) сильно сомневаюсь, что кто-нибудь так ищет телефоны. типа я помню 5 цифр из 10 и их порядок?
эта я к тому, что задача мало похожа на реальную |
||||||||||
31
PR
25.06.14
✎
13:43
|
(30) Ну как всегда. Не знаешь, как решить, скажи что-нить важное на тему того, как ты что-то там считаешь.
|
||||||||||
32
dj_serega
25.06.14
✎
14:08
|
(10) присоединяюсь
Есть простое решение... |
||||||||||
33
tdm
25.06.14
✎
14:14
|
контекстный поиск платформы 1с)))
Есть простое решение... |
||||||||||
34
PR
26.06.14
✎
14:09
|
Какие все умные, мне бы в фирму таких.
Даже задание ставить не придется, сами все-равно все сделают в лучшем виде. Правда не то, что просят, но кого беспокоят такие мелочи, да? :)) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |