MySQL - есть ли способ сопоставить данные таблицы с заданной строкой, а не наоборот

0
SELECT * FROM disney;
+++++++NAME+++++++
lion king
cinderella
the little mermaid
+++++++++++++++++++

$string = "i love the movie lion king, it rocks!"

Я хочу получить NAME из Disney, где NAME находится внутри данной строки. Это вроде как:

'SELECT * FROM disney WHERE NAME LIKE "%'.$string.'%";'

только наоборот (но не работает, когда я его пробовал).

Есть ли функция MYSQL для проверки наличия данных в ячейке таблицы в данной строке?

Спасибо большое!().i'm работает с PHP!

  • 0
    SELECT * FROM disney WHERE NAME LIKE '%{$string}%';
Теги:

3 ответа

1
Лучший ответ

Я думаю, что следующее должно работать (я помню, что пытался сделать одно и то же, и я думаю, что это то, что я использовал):

'SELECT * FROM disney WHERE "' . $string . '" LIKE CONCAT("%",NAME,"%")';
  • 0
    Это только ставит подстановочный знак в правой части запроса.
  • 0
    благодарю вас! это действительно сработало!
Показать ещё 2 комментария
1

Здесь INSTR Функция, которая должна работать для этого:

SELECT * FROM disney WHERE INSTR('i love the movie lion king, it rocks!', name) > 0
  • 1
    Измените двойные кавычки на одинарные, и это будет работать.
  • 0
    @ Милые вещи: спасибо ... не мой день ...
0

Вы также можете попробовать MySQL FULLTEXT функцию поиска, которая работает только с таблицами MyISAM:

$query = "SELECT * FROM disney WHERE MATCH(NAME) AGAINST ('$text')";

Ещё вопросы

Сообщество Overcoder
Наверх
Меню