自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

教您如何實(shí)現(xiàn)MySQL單表多字段模糊查詢

數(shù)據(jù)庫(kù) MySQL
如何才能實(shí)現(xiàn)在單表中對(duì)多字段進(jìn)行多個(gè)關(guān)鍵字的模糊查詢呢?下文就教您一個(gè)實(shí)現(xiàn)該功能的方法,供您參考借鑒。

MySQL單表多字段模糊查詢的是指實(shí)現(xiàn)在單表中對(duì)多字段進(jìn)行多個(gè)關(guān)鍵字的模糊查詢,但這數(shù)個(gè)關(guān)鍵字并不一定都存在于某個(gè)字段。

例如現(xiàn)有table表,其中有title,tag,description三個(gè)字段,分別記錄一條資料的標(biāo)題,標(biāo)簽和介紹。然后根據(jù)用戶輸入的查詢請(qǐng)求,將輸入的字串通過(guò)空格分割為多個(gè)關(guān)鍵字,再在這三個(gè)字段中查詢包含這些關(guān)鍵字的記錄。

可目前遇到的問(wèn)題是,這些關(guān)鍵字是可能存在于三個(gè)字段中的任意一個(gè)或者多個(gè),但又要求三個(gè)字段必須包含所有的關(guān)鍵詞。如果分別對(duì)每個(gè)字段進(jìn)行模糊匹配,是沒(méi)法實(shí)現(xiàn)所需的要求,由此想到兩種方法:

在插入記錄的同時(shí),將需要進(jìn)行MySQL單表多字段模糊查詢的字段合并成一個(gè)字串并加入到一個(gè)新的字段中,然后對(duì)這個(gè)新字段進(jìn)行模糊查詢。
使用全文檢索,但是這需要用到中文分詞或者將漢字轉(zhuǎn)化為拼音(拆分漢字是不可行的,MySQL默認(rèn)FT最小字節(jié)為4),而且并不利于今后的維護(hù)。
《MySQL權(quán)威指南》中CONCAT的使用方法,在書(shū)中的對(duì)CONCAT的描述是:

CONCAT(str1,str2,…)
返回值:由全體出入?yún)?shù)合并在一起而得到的字符串。只要輸入的參數(shù)中有NULL值,就返回NULL。CONCAT允許只有一個(gè)輸入?yún)?shù)的情況。

因此,MySQL單表多字段模糊查詢可以通過(guò)下面這個(gè)SQL查詢實(shí)現(xiàn)
SELECT * FROM `magazine` WHERE CONCAT(`title`,`tag`,`description`) LIKE ‘%關(guān)鍵字%’
 

 

 

【編輯推薦】

mysql快速建表的方法

深入研究MySQL刪除多表數(shù)據(jù)

多個(gè)MySQL表結(jié)果集組合

MySQL分表處理的實(shí)現(xiàn)方法

MySQL復(fù)制表數(shù)據(jù)到新表的方法

責(zé)任編輯:段燃 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-11-22 13:13:30

MySQL模糊查詢

2010-11-18 16:27:37

2010-11-25 14:49:08

MySQL查詢最大值

2010-11-25 14:56:46

MySQL全文查詢

2010-10-08 10:37:00

MYSQL添加新字段

2010-10-08 15:37:21

MySQL單表

2010-09-26 13:56:43

SQL遠(yuǎn)程查詢

2010-11-25 10:44:30

2010-09-07 09:45:48

SQL語(yǔ)句

2010-11-22 16:05:53

MySQL多表插入

2010-10-14 10:28:18

MySQL動(dòng)態(tài)視圖

2010-10-13 16:49:56

MySql查詢時(shí)間段

2010-10-13 09:37:48

MYSQL修改表結(jié)構(gòu)

2010-11-03 11:30:56

DB2表空間擴(kuò)容

2010-10-26 10:48:16

ORACLE備份

2010-11-25 13:45:07

MySQL查詢語(yǔ)句

2010-10-12 14:53:31

mysql索引優(yōu)化

2010-11-23 16:04:40

MySQL數(shù)據(jù)表

2018-07-25 18:40:06

數(shù)據(jù)庫(kù)MySQL多字段過(guò)濾

2010-11-29 13:28:55

sybase自動(dòng)備份
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)