亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Mysql 中文排序規則說明

瀏覽:2日期:2023-10-06 09:51:04

使用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 數據庫
相關文章:
主站蜘蛛池模板: 日本护士做xxxxxx视频 | 国产在线观看黄 | 午夜影院在线视频 | 国产精品成人免费 | 一级毛片免费的 | 亚洲a级黄色片 | 中文在线免费不卡视频 | 国外免费一级 | 亚洲阿v天堂2021在线观看 | 欧美精品免费在线 | 久久亚洲国产精品五月天 | 久久久久欧美精品观看 | 国产精品亚洲玖玖玖在线靠爱 | 国产精品99久久久久久人 | 精品综合| 久久精品国产2020 | 国产大学生一级毛片绿象 | 中国黄色网址 | 久久精品亚洲热综合一本奇米 | 欧美日韩精品在线观看 | 色国产在线视频一区 | 精品国产高清a毛片无毒不卡 | 一个人看的ww免费视频 | 精品无人区一区二区三区a 精品无码一区在线观看 | 性一级视频 | 欧美日中文字幕 | 九九视频只有精品六 | 欧美日韩亚毛片免费观看 | 亚洲国产成人久久综合区 | 国产123区在线视频观看 | 亚洲图片一区二区三区 | 久久性妇女精品免费 | 免费观看大片毛片 | 免费毛片看 | 爆操御姐 | 综合7799亚洲伊人爱爱网 | 特黄的欧美毛片 | 日韩一级二级三级 | 国产日韩欧美综合在线 | 国产一级视频在线观看网站 | 成人福利免费视频 |