|
Как в запросе проверить строку на спецсимволы |
☑ |
0
Asest
22.09.14
✎
17:31
|
Есть запрос
ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
Как поставить условие на Номенклатура.Артикул, чтобы следующее условие оказалось верным. Есть переменная &Артикул.
Номенклатура.Артикул = &Артикул
Если
Номенклатура.Артикул = //*- 1234 421312*2/\
&Артикул = 12344213122, т. е.
если они равны без учета спецсимволов и пробелов, тоусловие должно считаться верным
|
|
1
Asest
22.09.14
✎
17:34
|
Я понимаю что можно просто отобрать всю номенклатуру а потом проверять отдельно. но у меня 10 000 артикулов, и столько же номенклатуры, то есть для каждого артикула нужно проверить 10 000 номенклатур и так 10 000 раз. Получается примерно 10 минут на каждые 10 артикулов, нереальное время
|
|
2
Apokalipsec
22.09.14
✎
17:34
|
То есть выпилить спецсимволы из артикулов не предлагать?)
Подобно мучай.
|
|
3
Ёпрст
гуру
22.09.14
✎
17:37
|
обойти весь справочник и регуляркой проверить нужное разве что.
|
|
4
Asest
22.09.14
✎
17:39
|
Спец символы есть и в артикулах и в номенклатуре, можно разве что создать 2 временные таблицы в которых убрать спецсимволы, а после их сравнивать, но не думаю что это сильно ускорит
|
|
5
Asest
22.09.14
✎
17:40
|
То есть вопрос стоит так: можно ли как то поставить условие прямо в запросе? как то заранее обработать строку прямо в запросе или наложить маску?
|
|
6
Kamas
22.09.14
✎
17:44
|
(5) ради интереса предлагаю найти всю номенклатуру которя в наименовании содержит _ или %
|
|
7
Asest
22.09.14
✎
17:45
|
Ну скажите что это невозможно и я пойду развлекаться с таблицами
|
|
8
Kamas
22.09.14
✎
17:46
|
(6) с остальными символами вроде ка проблем не должно быть
|
|
9
Defender aka LINN
22.09.14
✎
17:46
|
(5) Представил себе такое "ПОДОБНО"
|
|
10
Kamas
22.09.14
✎
17:51
|
(9) ну например<> спокойно берутся
|
|
11
Asest
22.09.14
✎
17:54
|
Можно наверно сделать так
Номенклатура.ВнутрНомер ПОДОБНО" + " строка"
а строку собирать по символьно из артикула вставляя маску, предварительно удалив спецсимволы
и полчится так
артикул = 123/
строка = [0-9]+&символ1+[/\-*. ]+&символ2+[/\-*. ]+&символ3+[/\-*. ]
|
|
12
Asest
22.09.14
✎
17:54
|
Мне нужны конкретно символы /\-*. и пробел
Это достаточно извращенно или есть и другие варианты?
|
|
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший