MYSQL全文索引 CONTAINS語法

2021-07-31 05:34:55 字數 1689 閱讀 2209

我們通常在 where 子句中使用 contains ,就象這樣:select * from table_name where contains(fulltext_column,'search contents')。

我們通過例子來學習,假設有表 students,其中的 address 是全文字檢索的列。

1. 查詢住址在北京的學生

select student_id,student_name

from students

where contains( address, 'beijing' )

remark: beijing是乙個單詞,要用單引號括起來。

2. 查詢住址在河北省的學生

select student_id,student_name

from students

where contains( address, '"heibei province"' )

remark: hebei province是乙個片語,在單引號裡還要用雙引號括起來。

3. 查詢住址在河北省或北京的學生

select student_id,student_name

from students

where contains( address, '"heibei province" or beijing' )

remark: 可以指定邏輯操作符(包括 and ,and not,or )。

4. 查詢有 '南京路' 字樣的位址

select student_id,student_name

from students

where contains( address, 'nanjing near road' )

remark: 上面的查詢將返回包含 'nanjing road','nanjing east road','nanjing west road' 等字樣的位址。

a near b,就表示條件: a 靠近 b。 

5. 查詢以 '湖' 開頭的位址

select student_id,student_name

from students

where contains( address, '"hu*"' )

remark: 上面的查詢將返回包含 'hubei','hunan' 等字樣的位址。

記住是 *,不是 %。

6. 類似加權的查詢

select student_id,student_name

from students

where contains( address, 'isabout (city weight (.8), county wright (.4))' )

remark: isabout 是這種查詢的關鍵字,weight 指定了乙個介於 0~1之間的數,類似係數(我的理解)。表示不同條件有不同的側重。

7. 單詞的多型查詢

select student_id,student_name

from students

where contains( address, 'formsof (inflectional,street)' )

remark: 查詢將返回包含 'street','streets'等字樣的位址。

對於動詞將返回它的不同的時態,如:dry,將返回 dry,dried,drying 等等。

以上例子都使用英文,不使用中文是因為有的查詢方式中文不支援

mysql全文索引的坑 MySQL全文索引問題

我有乙個包含以下資料的 文章 mysql select from articles id title body 1 mysql tutorial dbms stands for database 2 how to use mysql well after you went through a 3 o...

mysql全文索引

了解 solr 之後 發現全文索引也能做檢索 故了解了下 筆記如下 建立全文索引 alter table table add fulltext index fulltext table 列1 列2 查詢方式 select from table where match 列1 列2 against 查詢...

mysql全文索引

舊版的mysql的全文索引只能用在myisam 的char varchar和text的字段上。不過新版的mysql5.6.24上innodb引擎也加入了全文索引,所以具體資訊要隨時關注官網,create table article id int auto increment not null pri...