當前位置:成語大全網 - 書法字典 - 如何在mysql中按姓氏筆畫排序

如何在mysql中按姓氏筆畫排序

有時項目需要按照漢字的拼音進行排序,如聯系人列表、礦產分類等。,還有壹些需要按照A到z的拼音字母顯示。

如果存儲漢字的字段代碼使用GBK字符集,因為GBK的內部代碼本身使用拼音排序方法(3755個常用的壹級漢字按拼音排序,而二級漢字不按拼音排序,但考慮到人名等都是常用漢字,只正確排序壹級漢字就足夠了),直接添加排序by就足夠了嗎?姓名ASC,查詢結果將按姓氏升序排序;如果存儲姓名的字段使用utf8字符集,則該字段需要在排序時進行代碼轉換,相應的代碼為Order by Convert(姓名使用GBK)ASC。同樣,查詢結果按姓氏升序排序。

按拼音首字母顯示時,需要使用中間表存儲字母對應的漢字編碼範圍。在這種情況下,可以每次都拿出漢字與中間表進行比較。用於在中間表中創建和插入數據的SQL如下:

/*

Navicat?MySQL?數據?轉移

目標?服務器?類型:?關系型數據庫

目標?服務器?版本?:?50617

文件?編碼?:?65001

日期:?2015-07-02?11:12:15

*/

設置?FOREIGN _ KEY _ CHECKS = 0;

- ?-

- ?桌子?結構?為了什麽?t_coslers

- ?-

滴?桌子?如果?存在嗎?` t _ coslers

創造?桌子?` t_coslers`?(

` id `?int(11)?不是嗎?NULL?自動遞增,

` f_PY `?char(1)?性格?設置?utf8?違約?空,

` cBegin`?smallint(5)?未簽名?不是嗎?空,

` cEnd `?smallint(5)?未簽名?不是嗎?空,

初級?鑰匙?(` id `)

)?ENGINE=InnoDB?AUTO_INCREMENT=24?違約?CHARSET = Latin 1;

- ?-

- ?記錄?的?t_coslers

- ?-

插入?變成?` t_coslers`?價值觀?('1',?壹個‘,?'45217',?'45252');

插入?變成?` t_coslers`?價值觀?('2',?b‘,?'45253',?'45760');

插入?變成?` t_coslers`?價值觀?('3',?c‘,?'45761',?'46317');

插入?變成?` t_coslers`?價值觀?('4',?d‘,?'46318',?'46825');

插入?變成?` t_coslers`?價值觀?('5',?e‘,?'46826',?'47009');

插入?變成?` t_coslers`?價值觀?('6',?f‘,?'47010',?'47296');

插入?變成?` t_coslers`?價值觀?('7',?g‘,?'47297',?'47613');

插入?變成?` t_coslers`?價值觀?('8',?h‘,?'47614',?'48118');

插入?變成?` t_coslers`?價值觀?('9',?j‘,?'48119',?'49061');

插入?變成?` t_coslers`?價值觀?('10',?k‘,?'49062',?'49323');

插入?變成?` t_coslers`?價值觀?('11',?l‘,?'49324',?'49895');

插入?變成?` t_coslers`?價值觀?('12',?m‘,?'49896',?'50370');

插入?變成?` t_coslers`?價值觀?('13',?n‘,?'50371',?'50613');

插入?變成?` t_coslers`?價值觀?('14',?奧,?'50614',?'50621');

插入?變成?` t_coslers`?價值觀?('15',?p‘,?'50622',?'50905');

插入?變成?` t_coslers`?價值觀?('16',?q‘,?'50906',?'51386');

插入?變成?` t_coslers`?價值觀?('17',?r‘,?'51387',?'51445');

插入?變成?` t_coslers`?價值觀?('18',?s‘,?'51446',?'52217');

插入?變成?` t_coslers`?價值觀?('19',?t‘,?'52218',?'52697');

插入?變成?` t_coslers`?價值觀?('20',?w‘,?'52698',?'52979');

插入?變成?` t_coslers`?價值觀?('21',?x‘,?'52980',?'53640');

插入?變成?` t_coslers`?價值觀?('22',?y‘,?'53689',?'54480');

插入?變成?` t_coslers`?價值觀?('23',?z‘,?'54481',?'55289');借助中間表查詢漢字首字母的示例SQL如下所示(utf8字符集):

選擇?t1.id,?t1.name,t2.f_PY

從哪裏?t_user?t1,?t_coslers?t2

where conv(HEX(LEFT(CONVERT(t 1 . name?使用?gbk?),?1)),?16,?10)?介於?t2.cBegin?然後呢。t2.cEnd

訂單?被誰?轉換(t1.name?使用?gbk)?ASC需要註意的壹點是,上述排序和分類方法對多音字的支持不是很好,需要高精度的學生謹慎使用。