mysql 汉字拼音首字母查询_mysql数据库中查询汉字的拼音首字母

mysql数据库中查询汉字的拼音首字母

create table wkcx_cosler(

f_PY char primary key,

cBegin  SMALLINT UNSIGNED not null,

cEnd    SMALLINT UNSIGNED not null

);

INSERT INTO wkcx_cosler VALUES('A',0xB0A1,0xB0C4),('B',0xB0C5,0xB2C0),('C',0xB2C1,0xB4ED),('D',0xB4EE,0xB6E9),('E',0xB6EA,0xB7A1),('F',0xB7A2,0xB8C0),('G',0xB8C1,0xB9FD),('H',0xB9FE,0xBBF6),('J',0xBBF7,0xBFA5),('K',0xBFA6,0xC0AB),

('L',0xC0AC,0xC2E7),

('M',0xC2E8,0xC4C2),

('N',0xC4C3,0xC5B5),

('O',0xC5B6,0xC5BD),

('P',0xC5BE,0xC6D9),

('Q',0xC6DA,0xC8BA),

('R',0xC8BB,0xC8F5),

('S',0xC8F6,0xCBF9),

('T',0xCBFA,0xCDD9),

('W',0xCDDA,0xCEF3),

('X',0xCEF4,0xD188),

('Y',0xD1B9,0xD4D0),

('Z',0xD4D1,0xD7F9);

SELECT *

FROM wkcx_content AS p,

wkcx_cosler AS c

WHERE CONV(HEX(LEFT(CONVERT(p.news_title USING gbk),1)),16,10)  BETWEEN c.cBegin

AND c.cEnd AND c.f_PY='S'

create table wkcx_cosler(

f_PY char primary key,

cBegin  SMALLINT UNSIGNED not null,

cEnd    SMALLINT UNSIGNED not null

);

insert into wkcx_cosler values

('A',0xB0A1,0xB0C4),

('B',0xB0C5,0xB2C0),

('C',0xB2C1,0xB4ED),

('D',0xB4EE,0xB6E9),

('E',0xB6EA,0xB7A1),

('F',0xB7A2,0xB8C0),

('G',0xB8C1,0xB9FD),

('H',0xB9FE,0xBBF6),

('J',0xBBF7,0xBFA5),

('K',0xBFA6,0xC0AB),

('L',0xC0AC,0xC2E7),

('M',0xC2E8,0xC4C2),

('N',0xC4C3,0xC5B5),

('O',0xC5B6,0xC5BD),

('P',0xC5BE,0xC6D9),

('Q',0xC6DA,0xC8BA),

('R',0xC8BB,0xC8F5),

('S',0xC8F6,0xCBF9),

('T',0xCBFA,0xCDD9),

('W',0xCDDA,0xCEF3),

('X',0xCEF4,0xD188),

('Y',0xD1B9,0xD4D0),

('Z',0xD4D1,0xD7F9);

DROP TABLE IF EXISTS `orderbyname`;

CREATE TABLE `orderbyname` (

`id` int(11) NOT NULL auto_increment,

`name` varchar(255) character set gb2312 default NULL,

PRIMARY KEY  (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- ----------------------------

-- Records

-- ----------------------------

INSERT INTO `orderbyname` VALUES ('1', 'asc');

INSERT INTO `orderbyname` VALUES ('2', 'bsf');

INSERT INTO `orderbyname` VALUES ('3', 'aaa');

INSERT INTO `orderbyname` VALUES ('4', 'avg');

INSERT INTO `orderbyname` VALUES ('5', 'bbb');

INSERT INTO `orderbyname` VALUES ('6', 'cdf');

INSERT INTO `orderbyname` VALUES ('7', 'deg');

INSERT INTO `orderbyname` VALUES ('8', 'ddd');

INSERT INTO `orderbyname` VALUES ('9', '王');

INSERT INTO `orderbyname` VALUES ('10', '王强');

INSERT INTO `orderbyname` VALUES ('11', 'wwww');

INSERT INTO `orderbyname` VALUES ('12', 'w强');

INSERT INTO `orderbyname` VALUES ('13', '啊');

INSERT INTO `orderbyname` VALUES ('14', '吧');

INSERT INTO `orderbyname` VALUES ('15', '车');

INSERT INTO `orderbyname` VALUES ('16', '奥');

INSERT INTO `orderbyname` VALUES ('17', '爱');

INSERT INTO `orderbyname` VALUES ('18', 'avvvv');

//按汉字排序查询

from orderbyname p , wkcx_cosler c

where  CONV(HEX(left(name,1)),16,10) between c.cBegin and c.cEnd order by name;

select p.*

from orderbyname p , wkcx_cosler c

where  CONV(HEX(left(name,1)),16,10) between c.cBegin and c.cEnd

and c.f_PY='a' order by name;

结果:

mysql> select p.*

from orderbyname p , wkcx_cosler c

where  CONV(HEX(left(name,1)),16,10) between c.cBegin and c.cEnd

and c.f_PY='a' order by name;

+----+------+

| id | name |

+----+------+

| 13 | 啊   |

| 17 | 爱   |

| 16 | 奥   |

+----+------+

3 rows in set

mysql> select p.*

from orderbyname p , wkcx_cosler c

where  CONV(HEX(left(name,1)),16,10) between c.cBegin and c.cEnd

and c.f_PY='b' order by name;

+----+------+

| id | name |

+----+------+

| 14 | 吧   |

+----+------+

1 row in set

mysql>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值