我不确定
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 |+----+-------------------------------------+-----------------+