powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Хранимая процедура, выборка в цикле
7 сообщений из 7, страница 1 из 1
Хранимая процедура, выборка в цикле
    #38323751
folder-pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый уважаемые форумчане!

Прошу помощи в написании хранимой процедуры.
Некоторые познания в этом есть, но тут наверное нужен циклический вариант решения, либо кто то подскажет более правильное и быстрое решение вопроса.

Имеем таблицу слов, у слова есть id, слова уникальны естественно.
Слов в таблице будет порядка 200 000 шт.



Задача: в хранимую процедуру параметром передается фраза, примеры фраз

"песня закончится вдруг"
"вдруг песня"
"вдруг закончится"

то есть в фразе слова разделены пробелом.

Процедура на выходе должна выдать отсортированный по нарастающей список айдишников слов, а лучше сконкатенированный результат типа, для фраз из примера.

1-2-3
1-3
2-3

Заранее благодарен за помощь.
...
Рейтинг: 0 / 0
Хранимая процедура, выборка в цикле
    #38323779
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
folder-pro,

если слов в фразе не могут повторятся, то всё просто :
Код: sql
1.
2.
3.
4.
5.
6.
select group_concat(id order by pos separator '-') as xz
from

(select id, position(`name` in 'кокаита строка') as pos
from words
where 'кокаита строка' like concat('%',`name`,'%')) a
...
Рейтинг: 0 / 0
Хранимая процедура, выборка в цикле
    #38323804
folder-pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112,

Большое спасибо!
Уже что то. :)

Хотелось бы уточнить, о каком именно повторении стоит вопрос?


песня закончится вдруг песня

или

песня песня закончится вдруг
...
Рейтинг: 0 / 0
Хранимая процедура, выборка в цикле
    #38323817
folder-pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112folder-pro,

если слов в фразе не могут повторятся, то всё просто :
Код: sql
1.
2.
3.
4.
5.
6.
select group_concat(id order by pos separator '-') as xz
from

(select id, position(`name` in 'кокаита строка') as pos
from words
where 'кокаита строка' like concat('%',`name`,'%')) a




К сожалению для фразы "песня вдруг закончится" результат 1-3-2, то есть не отсортированный, должен быть 1-2-3, так как это разные сущности.
...
Рейтинг: 0 / 0
Хранимая процедура, выборка в цикле
    #38323819
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
folder-proХотелось бы уточнить, о каком именно повторении стоит вопрос?


песня закончится вдруг песня

или

песня песня закончится вдруг
и в том, и другом случае,
мой запрос "обработает" только первое вхождение слова "песня" в фразе ...
...
Рейтинг: 0 / 0
Хранимая процедура, выборка в цикле
    #38323824
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
folder-proqwerty112folder-pro,

если слов в фразе не могут повторятся, то всё просто :
Код: sql
1.
2.
3.
4.
5.
6.
select group_concat(id order by pos separator '-') as xz
from

(select id, position(`name` in 'кокаита строка') as pos
from words
where 'кокаита строка' like concat('%',`name`,'%')) a




К сожалению для фразы "песня вдруг закончится" результат 1-3-2, то есть не отсортированный, должен быть 1-2-3, так как это разные сущности.
ааа, т.е. сортировка НЕ по порядку вхождения слов, а по ID ?
тогда position - вообще не нужен,
так, как-то
Код: sql
1.
group_concat(id order by id separator '-') as xz
...
Рейтинг: 0 / 0
Хранимая процедура, выборка в цикле
    #38323844
folder-pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112,

Большое спасибо!
Решение конечно было на поверхности :), тут нужен был взгляд человека с другим мышлением.
Я бы зациклившийся на других вопросах городил бы жуткие конструкции...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Хранимая процедура, выборка в цикле
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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