У меня есть таблица с текстовым полем, в зависимости от строки в ней содержится от 3 до 4 предложений.
Теперь я делаю html-объект автозаполнения, и я хотел бы начать вводить начало слова и чтобы база данных возвращала слова, начинающиеся с этих букв, из текстового поля базы данных.
Пример текстового поля: мне нравятся рыбные палочки, рыбные шарики тоже хороши
в моем автозаполнении, если бы я набрал "fish", он предложил бы "fishsticks" и "fishhat"
Все работает, кроме запроса.
Я легко могу найти строки, содержащие определенное слово, но не могу извлечь только слово, а не полный текст.
select data_txt from mytable match(data_txt) against('fish', IN BOOLEAN MODE) limit 10
Я знаю, что это грязно, но я не могу переставить базу данных.
Спасибо за помощь!
EDIT:
Вот что я получил, благодаря Бренту Уордену, он не чистый, но работает:
SELECT DISTINCT
SUBSTRING(data_txt,
LOCATE('great', data_txt),
LOCATE(' ' , data_txt, LOCATE('great', data_txt)) - LOCATE('great', data_txt)
)
FROM mytable WHERE data_txt LIKE '% great%'
LIMIT 10
есть идеи, как не использовать одно и то же выражение LOCATE
снова и снова?