Я не уверен, является ли LIKE
правильным способом сделать это. Если вам нужно искать в тексте ключевые слова и сортировать результаты по показателю релевантности, вам следует использовать полнотекстовый индекс MySQL и функции полнотекстового поиска MySQL . Извините, если это уводит вас от того, что вы на самом деле пытаетесь сделать, но я рекомендую один раз взглянуть на это. Некоторые цитаты из справочника MySQL:
1) Как создать полнотекстовый индекс для нескольких столбцов таблицы
mysql> CREATE TABLE articles (
-> id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
-> title VARCHAR(200),
-> body TEXT,
-> FULLTEXT (title,body)
-> );
2) Пример данных
mysql> INSERT INTO articles (title,body) VALUES
-> ('MySQL Tutorial','DBMS stands for DataBase ...'),
-> ('How To Use MySQL Well','After you went through a ...'),
-> ('Optimizing MySQL','In this tutorial we will show ...'),
-> ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
-> ('MySQL vs. YourSQL','In the following database comparison ...'),
-> ('MySQL Security','When configured properly, MySQL ...');
3) Пример запроса, который ищет ключевые слова в нескольких столбцах и отображает результат + оценка:
mysql> SELECT id, body, MATCH (title,body) AGAINST
-> ('Security implications of running MySQL as root') AS score
-> FROM articles WHERE MATCH (title,body) AGAINST
-> ('Security implications of running MySQL as root');
+----+-------------------------------------+-----------------+
| id | body | score |
+----+-------------------------------------+-----------------+
| 4 | 1. Never run mysqld as root. 2. ... | 1.5219271183014 |
| 6 | When configured properly, MySQL ... | 1.3114095926285 |
+----+-------------------------------------+-----------------+