教您如何實現(xiàn)MySQL全文查詢
MySQL全文查詢的方法并不難,下面就為您詳細(xì)介紹MySQL全文查詢的實現(xiàn)方法,希望對您學(xué)習(xí)MySQL全文查詢方面能夠有所幫助。
到3.23.23時,MySQL開始支持全文索引和搜索。全文索引在MySQL中是一個FULLTEXT類型索引。FULLTEXT索引用于 MyISAM 表,可以在CREATE TABLE時或之后使用ALTER TABLE或 CREATE INDEX 在 CHAR、VARCHAR 或 TEXT 列上創(chuàng)建。對于大的數(shù)據(jù)庫,將數(shù)據(jù)裝載到一個沒有FULLTEXT索引的表中,然后再使用 ALTER TABLE (或 CREATE INDEX) 創(chuàng)建索引,這將是非??斓?。將數(shù)據(jù)裝載到一個已經(jīng)有FULLTEXT索引的表中,將是非常慢的。
全文搜索通過 MATCH() 函數(shù)完成。
- mysql> CREATE TABLE articles (
- -> id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
- -> title VARCHAR(200),
- -> body TEXT,
- ->FULLTEXT(title,body)
- -> );
- Query OK, 0 rows affected (0.00 sec)
- mysql> INSERT INTO articles VALUES
- -> (NULL,\'MySQLTutorial\', \'DBMS stands for DataBase ...\'),
- -> (NULL,\'How To UseMySQLEfficiently\', \'After you went through a ...\'),
- -> (NULL,\'OptimisingMySQL\',\'In this tutorial we will show ...\'),
- -> (NULL,\'1001MySQLTricks\',\'1. Never runMySQLd as root. 2. ...\'),
- -> (NULL,\'MySQLvs. YourSQL\', \'In the following database comparison ...\'),
- -> (NULL,\'MySQLSecurity\', \'When configured properly,MySQL...\');
- Query OK, 6 rows affected (0.00 sec)
- Records: 6 Duplicates: 0 Warnings: 0
- mysql> SELECT * FROM articles
- -> WHERE MATCH (title,body) AGAINST (\'database\');
- +----+-------------------+------------------------------------------+
- | id | title | body |
- +----+-------------------+------------------------------------------+
- | 5 |MySQLvs. YourSQL | In the following database comparison ... |
- | 1 |MySQLTutorial | DBMS stands for DataBase ... |
- +----+-------------------+------------------------------------------+
- 2 rows in set
【編輯推薦】