最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL單表多關(guān)鍵字模糊查詢的實(shí)現(xiàn)方法

 更新時(shí)間:2011年03月20日 19:15:47   作者:  
MySQL單表多關(guān)鍵字模糊查詢實(shí)現(xiàn)方法是很多人都非常想知道的一個(gè)問題,那么,究竟采用什么方法,才能實(shí)現(xiàn)MySQL單表多關(guān)鍵字模糊查詢呢?
在最近的一個(gè)項(xiàng)目需要實(shí)現(xiàn)在MySQL單表多關(guān)鍵字模糊查詢,但這數(shù)個(gè)關(guān)鍵字并不一定都存在于某個(gè)字段。例如現(xiàn)有table表,其中有title,tag,description三個(gè)字段,分別記錄一條資料的標(biāo)題,標(biāo)簽和介紹。然后根據(jù)用戶輸入的查詢請(qǐng)求,將輸入的字串通過空格分割為多個(gè)關(guān)鍵字,再在這三個(gè)字段中查詢包含這些關(guān)鍵字的記錄。


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

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

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

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

相關(guān)文章

  • MySQL通過DQL實(shí)現(xiàn)對(duì)數(shù)據(jù)庫數(shù)據(jù)的基本查詢

    MySQL通過DQL實(shí)現(xiàn)對(duì)數(shù)據(jù)庫數(shù)據(jù)的基本查詢

    這篇文章給大家介紹了MySQL如何通過DQL進(jìn)行數(shù)據(jù)庫數(shù)據(jù)的基本查詢,文中通過代碼示例和圖文結(jié)合介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • MySQL統(tǒng)計(jì)時(shí)間差的平均值方式

    MySQL統(tǒng)計(jì)時(shí)間差的平均值方式

    這篇文章主要介紹了MySQL統(tǒng)計(jì)時(shí)間差的平均值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • MySQL Select語句是如何執(zhí)行的

    MySQL Select語句是如何執(zhí)行的

    這篇文章主要介紹了MySQL Select語句是如何執(zhí)行的,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2020-11-11
  • linux(Centos7)下安裝mysql8.0.18的教程圖解

    linux(Centos7)下安裝mysql8.0.18的教程圖解

    這篇文章主要介紹了linux(Centos7)安裝mysql8.0.18的教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-11-11
  • MySQL中的alter table命令的基本使用方法及提速優(yōu)化

    MySQL中的alter table命令的基本使用方法及提速優(yōu)化

    這篇文章主要介紹了MySQL中的alter table命令的基本使用方法及提速優(yōu)化的方法,包括ALTER COLUMN的使用等等,需要的朋友可以參考下
    2015-11-11
  • Mysql的列修改成行并顯示數(shù)據(jù)的簡單實(shí)現(xiàn)

    Mysql的列修改成行并顯示數(shù)據(jù)的簡單實(shí)現(xiàn)

    這篇文章主要介紹了Mysql的列修改成行并顯示數(shù)據(jù)的簡單實(shí)現(xiàn),本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-10-10
  • MySQL如何匹配字符串函數(shù)

    MySQL如何匹配字符串函數(shù)

    MySQL提供多個(gè)字符串匹配函數(shù),如like、locate、position、instr和find_in_set,其中l(wèi)ocate、position、instr和find_in_set均返回字符在字段中的索引(如果包含),否則返回0,特別地,find_in_set適用于字段為數(shù)組的情況
    2024-11-11
  • 在?CentOS?7?下如何使用?Ansible?Playbook?實(shí)現(xiàn)?MySQL?8.0.34?的二進(jìn)制安裝

    在?CentOS?7?下如何使用?Ansible?Playbook?實(shí)現(xiàn)?MySQL?8.0.34?的

    要在?CentOS?7?下使用?Ansible?Playbook?實(shí)現(xiàn)?MySQL?8.0.34?的二進(jìn)制安裝,需要先下載?MySQL?8.0.34?的二進(jìn)制包,并將其上傳至目標(biāo)服務(wù)器,對(duì)MySQL?8.0.34?二進(jìn)制安裝過程感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • 深入解析MySQL雙寫緩沖區(qū)

    深入解析MySQL雙寫緩沖區(qū)

    雙寫緩沖區(qū)是MySQL中的一種優(yōu)化方式,主要用于提高數(shù)據(jù)的寫性能,本文將介紹Doublewrite Buffer的原理和應(yīng)用,幫助讀者深入理解其如何提高M(jìn)ySQL的數(shù)據(jù)可靠性并防止可能的數(shù)據(jù)損壞,感興趣的可以了解一下
    2024-02-02
  • MySQL千萬級(jí)數(shù)據(jù)的大表優(yōu)化解決方案

    MySQL千萬級(jí)數(shù)據(jù)的大表優(yōu)化解決方案

    mysql數(shù)據(jù)庫中的表數(shù)據(jù)量幾千萬后,查詢速度會(huì)很慢,日常各種卡慢,嚴(yán)重影響使用體驗(yàn)。在考慮升級(jí)數(shù)據(jù)庫或者換用大數(shù)據(jù)解決方案前,必須優(yōu)化現(xiàn)有mysql數(shù)據(jù)庫表設(shè)計(jì)和sql語句。
    2022-11-11

最新評(píng)論

克什克腾旗| 阿尔山市| 肥乡县| 巴马| 垫江县| 平顶山市| 江油市| 尚义县| 沿河| 北京市| 贵德县| 那坡县| 淄博市| 运城市| 白河县| 广州市| 卢湾区| 微博| 扶绥县| 临澧县| 阿拉善左旗| 内黄县| 车致| 连城县| 佛教| 普兰县| 南安市| 芦山县| 河池市| 柳河县| 金乡县| 海安县| 德清县| 雷山县| 东乌珠穆沁旗| 张家口市| 安福县| 桃源县| 宁化县| 塔河县| 昆山市|