The Chinese data of mysql are sorted by two methods of pinyin

  • 2020-06-15 10:24:23
  • OfStack

The customer service requires me to sort some hotels in Chinese pinyin. I have never contacted them before, so I asked some Daniel in php group. I got two answers, either way. Ha ha ・ ~
The following is the msyql example, and the table structure is utf-8

Method 1.


SELECT `hotel_name`
FROM `hotel_base`
ORDER BY convert( `hotel_name`
USING gbk )
COLLATE gbk_chinese_ci

Method 2.

SELECT `hotel_id` , `hotel_name` , ELT( INTERVAL( CONV( HEX( left( CONVERT( `hotel_name`
USING gbk ) , 1 ) ) , 16, 10 ) , 0xB0A1, 0xB0C5, 0xB2C1, 0xB4EE, 0xB6EA, 0xB7A2, 0xB8C1, 0xB9FE, 0xBBF7, 0xBFA6, 0xC0AC, 0xC2E8, 0xC4C3, 0xC5B6, 0xC5BE, 0xC6DA, 0xC8BB, 0xC8F6, 0xCBFA, 0xCDDA, 0xCEF4, 0xD1B9, 0xD4D1 ) , ' A', ' B', ' C', ' D', ' E', ' F', ' G', ' H', ' J', ' K', ' L', ' M', ' N', ' O', ' P', ' Q', ' R', ' S', ' T', ' W', ' X', ' Y', ' Z' ) AS PY
FROM hotel_base
ORDER BY PY ASC

Method 1 is simpler than method 2


Related articles: