Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / регулярные выражения / 9 сообщений из 9, страница 1 из 1
13.10.2002, 16:35:04
    #32057753
Van
Van
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
регулярные выражения
Нужно грамотно составить запрос
ячейка проверяется на наличие слова в ней.
Причем при поиске по слову 'Иван' строка ' Иван Петров' должна находиться, а 'Михаил Иван ович' не должна, т.е. положительный результат должен выдаваться, если слово присутствует в предложении целиком, а не как часть слова.
Я знаю, как это должно примерно выглядеть, но хочется уточнить...
...
Рейтинг: 0 / 0
13.10.2002, 21:06:38
    #32057766
Cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
регулярные выражения
Можно так
like '%Иван %' or like '% Иван%'
...
Рейтинг: 0 / 0
13.10.2002, 21:11:53
    #32057769
Стрелок
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
регулярные выражения
like '%Иван %' or like '%Иван'
инече 'Михаил Иванович' попадет
...
Рейтинг: 0 / 0
13.10.2002, 21:21:40
    #32057771
Гнездин Петр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
регулярные выражения
не-а... никто не угадал :) и не забывайте, что по-умолчанию регистр букв игнорируется. так не будет работать. скорее примерно так:
WHERE поле = 'иван' OR поле LIKE 'иван %' OR поле LIKE '% иван' OR поле LIKE '% иван %'
но это будет, мягко говоря, не быстро... для таких вещей наиболее правильно использовать full-text search
...
Рейтинг: 0 / 0
13.10.2002, 21:37:17
    #32057773
Стрелок
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
регулярные выражения
Тогда уж и знаки препинания нужно учесть. В вопросе говорится про целое предложение.
...
Рейтинг: 0 / 0
13.10.2002, 22:02:51
    #32057774
Гнездин Петр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
регулярные выражения
Угум-с, согласен. Поэтому и говорю, что с этими обязанностями совершенно замечательно справляется word-breaker полнотекстового поиска. Но можно и предыдущий пример модифицировать вариантами '[^а-я]' и '^[a-z]' вместо пробелов или же в '[]' передавать все допустимые разделители. Хлопотно это...
...
Рейтинг: 0 / 0
13.10.2002, 22:14:59
    #32057777
Гнездин Петр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
регулярные выражения
Вот кстати такой еще вариантик пришел в голову:
Код: plaintext
WHERE ' ' + поле + ' ' LIKE '%[^a-zа-я]иван[^a-zа-я]%'

Бррр....
...
Рейтинг: 0 / 0
13.10.2002, 23:27:29
    #32057785
Van
Van
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
регулярные выражения
Всем спасибо, я примерно до этого же дошел, правда я думал, что надо писать что-то вроде '%[^a-z^а-я]иван[^a-z^а-я]%'
...
Рейтинг: 0 / 0
13.10.2002, 23:32:35
    #32057786
Гнездин Петр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
регулярные выражения
дополнение пробелами только для тех случаев, когда подстрока находится в начале или конце строки
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / регулярные выражения / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]