powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Столкнулся с проблемой нахождения конкретного слова, кто знает помогите
6 сообщений из 6, страница 1 из 1
Столкнулся с проблемой нахождения конкретного слова, кто знает помогите
    #40003397
jakobakoba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как найти строки с наличием конкретного слова в столбце? Например есть слово "IN", я хочу найти именно "IN" и не включать в результат такие слова как "INNER".
Т.е. Есть строка "pervoе predlojenie IN" это включаю, строку "vtoroe predlojenie INNER" не включаю.

НАПРИМЕР:
SELECT keyword_name, step_name
FROM keyword, step
WHERE INSTR(step_name, keyword_name) > 0

здесь keyword_name - это слова которые я ищу в step_name
В данном примере забирает все: и IN и INNER.

Вот как тут решить?
...
Рейтинг: 0 / 0
Столкнулся с проблемой нахождения конкретного слова, кто знает помогите
    #40003405
Фотография peter64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jakobakoba,
like '% IN %'?.
Нет , поспешил.
...
Рейтинг: 0 / 0
Столкнулся с проблемой нахождения конкретного слова, кто знает помогите
    #40003428
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как вариант
Код: sql
1.
WHERE step_name REGEXP "[[:<:]]IN[[:>:]]"
...
Рейтинг: 0 / 0
Столкнулся с проблемой нахождения конкретного слова, кто знает помогите
    #40003503
jakobakoba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_Ustinov, Выдало ошибку, прочитал, что в mysql 8.0. нужно написать REGEXP "\\bслово\\b". Спасибо, получилось находить слова, написанные между кавычками. А как можно из списка выбрать? Вот например столбец keyword_name есть со словами, которые я хочу найти в другом стоблце, но я же не могу их каждый раз записывать вручную между кавычками? как можно это обойти?
...
Рейтинг: 0 / 0
Столкнулся с проблемой нахождения конкретного слова, кто знает помогите
    #40003546
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jakobakoba
А как можно из списка выбрать?
распарсить список на токены, искать каждый отдельно.
...
Рейтинг: 0 / 0
Столкнулся с проблемой нахождения конкретного слова, кто знает помогите
    #40003687
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jakobakoba
как найти строки с наличием конкретного слова в столбце? Например есть слово "IN", я хочу найти именно "IN" и не включать в результат такие слова как "INNER".
Т.е. Есть строка "pervoе predlojenie IN" это включаю, строку "vtoroe predlojenie INNER" не включаю.

НАПРИМЕР:
SELECT keyword_name, step_name
FROM keyword, step
WHERE INSTR(step_name, keyword_name) > 0

здесь keyword_name - это слова которые я ищу в step_name
В данном примере забирает все: и IN и INNER.

Вот как тут решить?


Вы не полностью определили задачу, какие разделители допустимы, какие нет.
Отвечу в общем случае:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT keyword_name, step_name
FROM keyword, step
WHERE 
 ((INSTR(step_name, keyword_name) = 1) or -- в начале строки
  (INSTR(step_name, keyword_name) > 1) and (SUBSTR(step_name, INSTR(step_name, keyword_name)-1,1) in (DELIMS_BEFORE))) 
and
 ((INSTR(step_name, keyword_name) =Length(step_name) -Length(keyword_name) +1) or  -- в конце строки
  ....



т.е. найти подстроку, по индексу посмотреть символ до/после подстроки. Код выглядит ужасно, но оптимизатор должен убрать повторные вызовы INSTR.

С regex можно более элегантно, но я не берусь написать regex для mssql который учтет все возможные разделители, а не только пробелы и пунктуацию.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Столкнулся с проблемой нахождения конкретного слова, кто знает помогите
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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