• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            興海北路

            ---男兒仗劍自橫行
            <2010年5月>
            2526272829301
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            統(tǒng)計(jì)

            • 隨筆 - 85
            • 文章 - 0
            • 評(píng)論 - 17
            • 引用 - 0

            常用鏈接

            留言簿(6)

            隨筆分類(lèi)

            隨筆檔案

            收藏夾

            全是知識(shí)啊

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            mysql模糊查詢結(jié)果不準(zhǔn)確的解決辦法
            作者: falcon   發(fā)表日期: 2006-04-15 16:07   復(fù)制鏈接



            引言:

            在執(zhí)行mysql的模糊查詢操作時(shí),發(fā)現(xiàn)返回的結(jié)果不準(zhǔn)確,可至今沒(méi)有找到完善的解決方案,所以特地來(lái)尋求解決方案拉.

            問(wèn)題:


            我在命令行里頭直接使用mysql(版本為mysql-4.0.18-win.zip)的時(shí)候也出現(xiàn)同樣問(wèn)題:
            ===================================
            我有一個(gè)表里頭存放了一些文件信息,包括中文的非中文的;
            表名為file_tab,里頭的重要字段是file,存放文件名,另外該字段的類(lèi)型是char

            我想查找包含"新鮮"這個(gè)詞語(yǔ)的所有文件
            理所當(dāng)然的就用了

            select file from file_tab where file like '%新鮮%'

            執(zhí)行后返回的結(jié)果卻包含了其他信息,如下:

            李湘給我新鮮
            凱瑞·路易斯·托馬斯&克利斯·馬頓-水晶頭骨之謎
            劉易斯·托馬斯-水母與蝸牛
            劉易斯·托馬斯-細(xì)胞生命的禮贊
            托馬斯-細(xì)胞生命的禮贊
            [劉易斯·托馬斯] 科學(xué)的危險(xiǎn)
            [柳文揚(yáng)] 托馬斯叔叔的推薦信
            08.新鮮

            結(jié)果明顯不符合我的本來(lái)用意

            自己分析:有可能是mysql對(duì)中文的處理問(wèn)題,也許其他文件名里頭的信息對(duì)應(yīng)字節(jié)信息和"新鮮"對(duì)應(yīng)的字節(jié)信息存在匹配關(guān)系,所以才得到這樣不符合本來(lái)要求的結(jié)果,可是我找不到解決辦法.

            后來(lái)我以為是mysql的版本太低,從貴站下了msyql5.0.18,可是輸出結(jié)果同樣不準(zhǔn)確,所以無(wú)奈
            麻煩大家一起探討/

            詳細(xì)見(jiàn):http://bbs.mysql.cn/thread-633-1-1.html



            解決辦法:

            解決問(wèn)題本身
            如果你定義該字段類(lèi)型為char型,請(qǐng)用alter添加約束binary;
            針對(duì)我上面的問(wèn)題,解決方案如下:

            先用describe file_tab查看該表的數(shù)據(jù)結(jié)構(gòu),然后通過(guò)下面的語(yǔ)句進(jìn)行修改

            alter table file_tab modify file char(100) binary not null;

            [注:其中char(100) not null為原來(lái)的類(lèi)型或約束,binary為添加的約束]

            補(bǔ)充,如果你定義的字段類(lèi)型為其他類(lèi)型,遇到類(lèi)似問(wèn)題,可能也是沒(méi)有加binary的緣故,試試就知道,呵呵

            不過(guò)到底還是不知道為什么要用binary哦
            所以我有去網(wǎng)路上找了一下,在百度里頭輸入mysql binary

            先是找到《mysql中文參考手冊(cè)》(用編輯>查找>binary,看看其作用)
            http://www.yesky.com/imagesnew/software/mysql/manual_Compatibility.html
            里頭介紹了binary的作用:

            缺省地,所有的字符串比較是忽略大小寫(xiě)的,由當(dāng)前的字符集決定了(缺省為ISO-8859-1 Latin1)排序順序。如果你不喜歡這樣,你應(yīng)該用BINARY屬性或使用BINARY強(qiáng)制符聲明列,它導(dǎo)致根據(jù)MySQL服務(wù)器主機(jī)的ASCII順序進(jìn)行排序。

            后來(lái)竟然找到和我問(wèn)題一樣的東東:
            《MySQL中文模糊檢索問(wèn)題的解決方法》
            http://down.dl.net.cn/Article.asp?id=605
            我的天啊,竟然有這么詳細(xì)的解決辦法

            解決附帶問(wèn)題,實(shí)現(xiàn)不區(qū)分大小寫(xiě)查詢

            但是仔細(xì)一看,用binary后,竟然區(qū)分大小寫(xiě)拉

            因此在查找的時(shí)候很不方便

            那么我們?cè)撛趺崔k呢?

            上面的文章中提到了解決辦法,但在文末尾提到了這樣會(huì)影響一些速度
            那怎么盡量消除這個(gè)解決辦法帶來(lái)的的速度的影響呢?

            這樣子:

            我們?cè)谔砑訑?shù)據(jù)進(jìn)入表之前把該字段的所有數(shù)據(jù)全部該成小寫(xiě),然后在查詢的時(shí)候把輸入的關(guān)鍵字也轉(zhuǎn)換成小寫(xiě)的,那么問(wèn)題不是解決拉,呵呵

            具體可以這么做:

            update file_tab set file=lcase(file);

            然后查詢的時(shí)候,改成
            我們先設(shè)傳進(jìn)來(lái)的參數(shù)為$filename
            那么可以這么做:

            select file from file_tab where file like '%lcase($filename)%'

            到現(xiàn)在,問(wèn)題基本上完善解決拉

            posted on 2008-03-14 16:14 隨意門(mén) 閱讀(1277) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            久久99精品九九九久久婷婷 | 精品久久久久久无码不卡| 夜夜亚洲天天久久| 97精品依人久久久大香线蕉97| 久久久久久久综合狠狠综合| 久久ZYZ资源站无码中文动漫| 久久国产免费直播| 久久99国产综合精品| 久久久久噜噜噜亚洲熟女综合| 精品久久久久久无码不卡| 99国产欧美久久久精品蜜芽| 人妻无码αv中文字幕久久琪琪布| 奇米影视7777久久精品| 国产成人精品久久| 岛国搬运www久久| 国产一级做a爰片久久毛片| 久久热这里只有精品在线观看| 久久精品国产精品亚洲| 久久人人爽人人爽人人片av高请 | 久久精品a亚洲国产v高清不卡| 99久久国产综合精品网成人影院| 久久人做人爽一区二区三区| 国产精品99久久精品爆乳| 国产∨亚洲V天堂无码久久久| 久久婷婷色综合一区二区| 久久影院久久香蕉国产线看观看| 国产精品美女久久久免费| 日韩久久久久久中文人妻| 久久笫一福利免费导航| 久久久久人妻精品一区三寸蜜桃| 97精品伊人久久久大香线蕉| 国产成人精品白浆久久69| 天堂无码久久综合东京热| 亚州日韩精品专区久久久| 国产精品免费久久久久电影网| 久久久久女人精品毛片| 久久99国产综合精品女同| 精品免费久久久久久久| 国产欧美一区二区久久| 国产精品女同久久久久电影院| 久久精品国产亚洲精品2020 |