午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術(shù)文章
文章詳情頁

Mysql 中文排序規(guī)則說明

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

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

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

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

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

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

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

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

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

補充:mysql數(shù)據(jù)庫默認排序問題

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引擎表在沒有任何的刪除,修改操作下,執(zhí)行 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,會根據(jù)主鍵來排序,從小到大

2、查看數(shù)據(jù)庫引擎命令:

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

show create table ;

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

show engines;

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章:
主站蜘蛛池模板: 久久一级精品 | 一本色道久久综合亚洲 | 国产高清黄网站全免费 | 久久久久在线视频 | 国产黄色精品视频 | 在线观看的av网站 | 日本黄大片 | 蜜臀久久久久 | 超碰狠狠操 | 欧美精品在线免费 | 免费三级av | 男女污污网站 | 国产在线精品视频 | 午夜大片| 国产v亚洲 | 99爱在线视频 | 日日夜夜| 国产一区二区成人 | www.男人的天堂 | 视频成人 | 国产精品一区二区三区不卡 | 免费成人深夜天涯网站 | 国产成人免费观看视频 | 国产做a视频| 99热这里 | 成年人视频在线观看免费 | 欧美激情影院 | 欧美乱日 | 一级黄色片欧美 | 淫亚洲 | 欧美在线日韩在线 | 成年男女免费视频网站 | 久久综合狠狠综合久久综合88 | 一区二区三区免费看 | aaa亚洲精品 | 日本精品一区二区 | 51精品视频 | 免费在线观看av网站 | 男人天堂网在线视频 | 久久久日韩 | 人人精品久久 |