|
Как в запросе проверить строку на спецсимволы | ☑ | ||
---|---|---|---|---|
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) Представил себе такое "ПОДОБНО"
http://screencast.com/t/zixiVabY3jG |
|||
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
|
Мне нужны конкретно символы /\-*. и пробел
Это достаточно извращенно или есть и другие варианты? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |