Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
К примеру у меня перменная в php $slovo='ящерица';
А в таблице у меня есть запись №3 в которой колонка slovo = 'ящер'.Видно что слова частично совпадают.Как мне с помощью этого совпадения вывести другую колнку записи №3.Конечно проблему можно решить выодом всех данных из таблицу по типу *,но это не выход
Какой в этом случае должен быть запрос?
Очень буду благодарен за качественный ответ
Неактивен
SELECT * FROM tablename WHERE slovo LIKE 'ящер%';
Неактивен
Спасибо за ответ! Но это не подходит,мне нужен обратный случай,у меня в таблице находится корень слова,и надо по этому корню узнать тип слова:существительное,прилагательное и т д .
Неактивен
Да, моя вина, невнимательно прочитал
Тогда идеальных решений, которые бы еще и индекс использовали, я сходу не вижу.
Я бы попробовал тогда делать пачкой запросов вида:
SELECT * FROM tablename WHERE slovo = 'ящерица'; -- fail
SELECT * FROM tablename WHERE slovo = 'ящериц'; -- fail
...
SELECT * FROM tablename WHERE slovo = 'ящер'; -- success
Такая пачка будет работать быстрее, чем полный скан таблицы запроса
WHERE 'ящерица' LIKE CONCAT(slovo, '%');
Ну и, разумеется, можно написать процедуру, которая будет пытаться выбрать
значения из таблицы, постоянно отрезая по одной букве с хвоста. Если будете
отрезать процедурой - осторожно относитесь к многобайтовым кодировкам,
нужно отрезать именно букву, а не байт.
Неактивен
К слову сказать, всегда можно пойти биекцией:
SELECT * FROM tablename WHERE slovo LIKE 'яще%';
Неактивен
Спасибо большое!
Неактивен
Оу, я редактировал, пока Вы писали - собственно, придумал простую биекцию,
сверху можно же не ограничивать, ну, вытащите три строки - со стороны кода найти
более подходящее уже просто.
Неактивен
Может быть в данном случае использовать полнотекстовый индекс?
Неактивен
Полнотекстовый ищет полные слова, частичные совпадения он не умеет искать совсем
Неактивен
Страниц: 1