国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

為什么我的 Mysql 不支持中文查詢

2024-07-24 12:57:06
字體:
來源:轉載
供稿:網友

最大的網站源碼資源下載站,

q:

我在寫一個查詢條件時的問題如下:
如我想寫一個字段中包含“李”字的所有記錄
$str="李";
select * from table where field like '%$str%' ;
顯示的記錄中除了包含”李”字的記錄,還有不包含“李”字的記錄。為什么?

a:

在mysql中,進行中文排序和查找的時候,對漢字的排序和查找結果是錯誤的。這種情況在mysql的很多版本中都存在。如果這個問題不解決,那么mysql將無法實際處理中文。

  出現這個問題的原因是:mysql在查詢字符串時是大小寫不敏感的,在編繹mysql時一般以iso-8859字符集作為默認的字符集,因此在比較過程中中文編碼字符大小寫轉換造成了這種現象。

方法一:

解決方法是對于包含中文的字段加上"binary"屬性,使之作為二進制比較,例如將"name char(10)"改成"name char(10)binary"。

方法二:

  如果你使用源碼編譯mysql,可以編譯mysql時使用--with--charset=gbk 參數,這樣mysql就會直接支持中文查找和排序了。

方法三:

  可以使用 mysql 的 locate 函數來判斷。以上述問題為例,使用方法為:
select * from table where locate(field,'李') > 0;
本站使用的就是這種方法,感覺還不錯。:p


方法四:

把您的select語句改成這樣,select * from table where fields like binary '%find%'即可!
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 来安县| 永寿县| 察哈| 茂名市| 中宁县| 南宫市| 夏津县| 拉孜县| 屏山县| 东源县| 嘉定区| 藁城市| 柳林县| 鸡泽县| 自贡市| 密山市| 读书| 玉林市| 含山县| 城口县| 宜宾县| 南京市| 孙吴县| 肇源县| 翁牛特旗| 黎平县| 图们市| 萨嘎县| 安阳县| 杭锦旗| 安岳县| 冷水江市| 庆城县| 交口县| 长沙县| 台前县| 尼勒克县| 东源县| 沂水县| 金坛市| 奇台县|