|
Запрос с ПОДОБНО | ☑ | ||
---|---|---|---|---|
0
tolok_d
10.10.12
✎
14:12
|
Стоит задача выбрать запросом подобные артикулы, тоесть если пользователь пишет 111, то нужно тащить артикулы: 111 | 1.11 | 11.1 | 1.1.1 | 1,11 | 11,1 | 1,1,1 | 1.1,1 | 1,1,1 | 1-11 | 11-1 | и тд, думаю смысл понятен. В запросе использую ПОДОБНО, и записываю искомый артикул как 1[.*,-]1[.*,-]1. И все бы замечательно, но Запрос тащит те артикулы, где между символами есть символ который в [.*,-]. Но такие артикулы как 11,1 или 1.11 или 111 он не тащит. Вопрос для тех кто разбирается, как можно показать запросу что там может и не быть знака?
|
|||
1
Живой Ископаемый
10.10.12
✎
14:14
|
ИЛИ
|
|||
2
tolok_d
10.10.12
✎
14:16
|
(1) не подходит, на сколько понимаю, это надо писать 1[.*,-]1[.*,-]1 ИЛИ 11[.*,-]1 ИЛИ 1[.*,-]11 ИЛИ 111. Ну это если три цифры в артикуле, а если 10?
|
|||
3
Живой Ископаемый
10.10.12
✎
14:17
|
да
|
|||
4
Галахад
гуру
10.10.12
✎
14:20
|
О, а что это значит? [.*,-]
|
|||
5
aleks-id
10.10.12
✎
14:20
|
%1%1%1%
|
|||
6
aleks-id
10.10.12
✎
14:20
|
(4) стыдоба. любой символ который внутри скобок
|
|||
7
goleaff2006
10.10.12
✎
14:23
|
а не проще 1_1_1
|
|||
8
Живой Ископаемый
10.10.12
✎
14:23
|
но можно применить "если проблема не решается на каком-то уровне, попробовать решить на другом". Например завести реквизит для артикулов, назвать его "ВесПодобности", туда писать сумму 1*4+1*2+1*1 = 7 для всех у кого 111 | 1.11 | 11.1 | 1.1.1 | 1,11 | 11,1 | 1,1,1 | 1.1,1 | 1,1,1 | 1-11 | 11-1 | и т.д.
Для тех, у кого 5 цифр значением для этого реквизита будет 1*16+1*8+1*4+1*2+1 В твоей обработке пользователь пишет 111 - находятся все, у кого значение равно 7, пользователи пишут 11111 - найдутся все у кого 31 Если пользователь напишет 10111, найдутся все у кого 23 |
|||
9
Живой Ископаемый
10.10.12
✎
14:24
|
2(7) найдет 11111, а это по идее другой артикул... Но можно конечно
1[^0-9]1[^0-9]1 |
|||
10
tolok_d
10.10.12
✎
14:25
|
(5) не правильно. это же он вытащит , например 1211, 1а11, 11бугага1
|
|||
11
kosts
10.10.12
✎
14:26
|
А может наоборот искать
[1].[1].[1] или [1],[1],[1] и тд |
|||
12
tolok_d
10.10.12
✎
14:26
|
(7) то же что и (5) только по одному любому символу будет находить, а надо именно [.*,-]
|
|||
13
Живой Ископаемый
10.10.12
✎
14:27
|
2(10)
1[^0-9,^a-z,^а-я]1[^0-9,^a-z,^а-я]1 |
|||
14
tolok_d
10.10.12
✎
14:27
|
(11) нет, значение имеют цифры, а не символы
|
|||
15
tolok_d
10.10.12
✎
14:28
|
(13) а отсутсвие симовла он не включает? сейчас попробую
|
|||
16
Живой Ископаемый
10.10.12
✎
14:28
|
2(15) включает, не подойдет... смотри лучше (8)
|
|||
17
Галахад
гуру
10.10.12
✎
14:31
|
(6) Ага, спасибо. Но чо-та не стыдно.
|
|||
18
kosts
10.10.12
✎
14:32
|
Можно попробовать так :-)
"%" + Искомое + "%" подобно выбор когда Не (Подстрока(с,1,1) подобно [,.*-]) тогда Подстрока(с,1,1) Иначе "" Конец + выбор когда Не (Подстрока(с,2,1) подобно [,.*-]) тогда Подстрока(с,2,1) Иначе "" Конец + выбор когда Не (Подстрока(с,3,1) подобно [,.*-]) тогда Подстрока(с,3,1) Иначе "" Конец и т.д. |
|||
19
tolok_d
10.10.12
✎
14:43
|
(18) просто не известно сколько символов в артикуле
|
|||
20
kosts
10.10.12
✎
14:45
|
(19) Да хоть 50.
|
|||
21
tolok_d
10.10.12
✎
14:49
|
(20) сейчас попробую, потом отпишусь о результате
пока самый толковый вариант у (8) |
|||
22
НЕА123
10.10.12
✎
14:53
|
(8)
а не проще просто записывать в ВесПодобности без [,.*-]? |
|||
23
kosts
10.10.12
✎
14:54
|
(21) Если делать с отдельным реквизитом, тог да уж записывать в доп реквизит артикул без лишних символов
"1.1.1.111" => "111111" |
|||
24
НЕА123
10.10.12
✎
14:54
|
+(22)
к тому же и буквички может есть в артикулах. |
|||
25
tolok_d
10.10.12
✎
14:57
|
(18) что то не работает. Может я не так понял...
|
|||
26
tolok_d
10.10.12
✎
15:00
|
(24) да, есть
пока решения значит нет( |
|||
27
kosts
10.10.12
✎
15:04
|
(26)
Вот готовое решение, или уговаривать нужно
|
|||
28
tolok_d
10.10.12
✎
15:10
|
(27) уговаривать не надо, но как мне все возможные варианты символов перебрать в артикуле? алфавит + цифры
|
|||
29
kosts
10.10.12
✎
15:12
|
(28) Зачем тебе перебирать цифры и алфавит?
Добавь количество условий до длины артикула и больше ничего не нужно... |
|||
30
airyashov
10.10.12
✎
15:20
|
Если вы маску формируете динамически, то почему бы не сделать список значений или несколько масок.
|
|||
31
GANR
10.10.12
✎
15:24
|
ВЫРАЗИТЬ(Аритикул КАК СТРОКА(5)) ПОДОБНО "%1%1%1%"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |