校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Mysql 中文排序規則說明

Mysql 中文排序規則說明

熱門標簽:外呼系統打電話上限是多少 武漢網絡外呼系統服務商 電話外呼系統改號 南昌三維地圖標注 百應電話機器人優勢 曲靖移動外呼系統公司 地圖標注費用是多少 怎樣在地圖標注銷售區域 啥是企業400電話辦理

使用MySQL過程中,我們經常會對一個字段進行排序查詢,我們一般都是想要按照中文拼音首字母進行依次排序,但mysql中進行中文排序的時候,對漢字的排序結果往往都是錯誤的。

這種情況在MySQL的很多版本中都存在。

如果這個問題不解決,那么MySQL將無法實際處理中文。

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

查了資料有兩種解決方法:

1.對于包含中文的字段加上”binary”屬性,使之作為二進制比較,例如將”name varchar(10)”改成”name varchar(10)binary”。

2. 如果不想對表結構進行修改或者重新編譯MySQL,也可以在查詢語句的 order by 部分使用 CONVERT 函數。

比如 name字段為中文,需要按其排序,則可以寫select * from mytable order by CONVERT(name USING gbk);

補充:mysql數據庫默認排序問題

1、mysql官方回答:

SELECT * FROM tbl -- this will do a "table scan". If the table has never had any DELETEs/REPLACEs/UPDATEs, the records will happen to be in the insertion order, hence what you observed.

大致意思為,一個myisam引擎表在沒有任何的刪除,修改操作下,執行 select 不帶order by,那么會按照插入順序進行排序。

If you had done the same statement with an InnoDB table, they would have been delivered in PRIMARY KEY order, not INSERT order. Again, this is an artifact of the underlying implementation, not something to depend on.

對于innodb引擎表來說,在相同的情況下,select 不帶order by,會根據主鍵來排序,從小到大

2、查看數據庫引擎命令:

(1)查看某個表使用的引擎

show create table ;

(2)查看mysql支持哪些引擎

show engines;

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • MySQL對中文進行排序詳解及實例
  • MySQL按常規排序、自定義排序和按中文拼音字母排序的方法
  • PHP與MYSQL中UTF8 中文排序示例代碼
  • PHP與MYSQL中UTF8編碼的中文排序實例

標簽:吉林 荊州 錦州 滄州 資陽 黑河 隨州 甘南

巨人網絡通訊聲明:本文標題《Mysql 中文排序規則說明》,本文關鍵詞  Mysql,中文,排序,規則,說明,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Mysql 中文排序規則說明》相關的同類信息!
  • 本頁收集關于Mysql 中文排序規則說明的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 普兰店市| 邵阳市| 四川省| 南宫市| 宝丰县| 宁南县| 临海市| 新巴尔虎左旗| 延寿县| 元氏县| 安阳县| 阿城市| 武陟县| 莒南县| 松潘县| 福贡县| 漳平市| 通道| 大田县| 永昌县| 邛崃市| 朔州市| 永春县| 隆子县| 苏尼特左旗| 广水市| 山西省| 玉龙| 永登县| 会宁县| 丹棱县| 肃北| 安泽县| 抚州市| 涟源市| 铜鼓县| 灵寿县| 梁山县| 沭阳县| 侯马市| 绥棱县|