mysql 获取汉字首字母判断汉字的首字母在什么位置

相关文章推荐
最近一个项目中有个模块需要实现拼音首字母查询功能,网上查了一下资料,自己重新修改整理了一下,支持使其满足项目的要求。
实现过程如下:
1.创建一个获取中英文大写首字母函数:
DROP FUNCTION...
查询汉字的全拼音
-- 创建汉字拼音对照临时表
CREATE TABLE IF NOT EXISTS `t_base_pinyin` (
`pin_yin_` varchar(255) CHARA...
英文26个字母中除了i,u,v三个字母不能成为汉语拼音的首字母外,其它的字母都可以。如果我们需要查询结果集中以A或者其它字母开头的汉语,实现方法如下,譬如,查询t_pvipuserinfo表中以字母B...
SELECT * FROM `table_test` WHERE textname REGEXP ‘[^ -~]‘ =1列出英文字段记录SELECT * FROM `table_test` WHERE...
在mysql中创建一个函数 用法跟mysql自带函数使用一样的:getFirstCodeDELIMITER //
CREATE DEFINER=`root`@`%` FUNCTION `getFirs...
排序时或者选择显示时,经常会需要 首字母-中文名称的格式: S - 上海过河兵电子商务有限公司
亲测简单有效的方法...
Select filename ,ELT(INTERVAL(CONV(HEX(left(CONVERT(filename USING gbk),1)),16,10),0xB0A1,0xB0C5,0xB...
fristPinyin : 此函数是将一个中文字符串的第一个汉字转成拼音字母 (例如:"中国人"->Z)
复制代码 代码如下:
CREATE FUNCTION `fristPinyin`(P_...
DELIMITER $$
USE `test`$$
DROP FUNCTION IF EXISTS `getFirstHanZiCode`$$
CREATE DEFINER=`hjd`@`%` ...
他的最新文章
讲师:董晓杰
讲师:姚远
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)正文 MySQL查询汉字的拼音首字母实例教程
MySQL查询汉字的拼音首字母实例教程
发布时间: & 编辑:
本文介绍了mysql实现查询汉字拼音首字母的方法,有关mysql数据库如何查询汉字拼音首字母的例子,有需要的朋友参考下。
DROP TABLE IF EXISTS `pyk`;
CREATE TABLE `pyk` (
`PY` varchar(1) ,
`HZ1` int ,
INSERT INTO `pyk` (`PY`,`HZ1`,`HZ2`) VALUES
2、建立mysql 函数
复制代码 代码示例:
DROP FUNCTION IF EXISTS
delimiter //
CREATE FUNCTION hzcode (s CHAR(255)) RETURNS char
DECLARE hz_
DECLARE hz_
SET hz_code = ord(substring(s,1,1))*256+ord(substring(s,2,1))-65536 ;
select py into hz_py from pyk where hz_code&=pyk.hz1 and hz_code&=pyk
RETURN hz_
数 据库类型如果是GBK的时候,这个函数好像有点小问题,稍微改动了下,貌似可以在GBK中使用了
delimiter $$
DROP FUNCTION IF EXISTS `hzcode`$$
CREATE FUNCTION `hzcode` (s CHAR(255)) RETURNS char
DECLARE hz_
DECLARE hz_
declare str varchar(400);
SET hz_code = ord(substring(s,1,1))-65536 ;
select py into hz_py from pyk where hz_code&=pyk.hz1 and hz_code&=pyk.hz2;
RETURN hz_
delimiter $$
复制代码 代码示例:
mysql& select hzcode('南海龙王');
+--------------------+
| hzcode('南海龙王') |
+--------------------+
+--------------------+
1 row in set (0.00 sec)
4、建立个测试表
复制代码 代码示例:
DROP TABLE IF EXISTS `f1`;
create table f1 (
name varchar(30),
pykey varchar(1)
insert into f1(name) values
复制代码 代码示例:
mysql& select * from f1;
+------+-------+
| name | pykey |
+------+-------+
| 张三 | NULL |
| 李四 | NULL |
| 王五 | NULL |
| 赵六 | NULL |
| 钱七 | NULL |
+------+-------+
5 rows in set (0.00 sec)
mysql& update f1 set pykey = hzcode(name);
Query OK, 5 rows affected (0.05 sec)
Rows matched: 5 Changed: 5 Warnings: 0
mysql& select * from f1;
+------+-------+
| name | pykey |
+------+-------+
| 张三 | Z |
| 李四 | L |
| 王五 | W |
| 赵六 | Z |
| 钱七 | Q |
+------+-------+
5 rows in set (0.00 sec)
这样就很方便地在MYSQL里查询汉字的首字母了。 类似地也可以直接在MYSQL得到汉字拼音。 不过需要拼音表,函数写法也不一样。您可能感兴趣的文章:今天看啥 热点:
复制代码 代码如下: select areaName from area order by convert(areaName USING gbk) COLLATE gbk_chinese_ci asc
说明:areaName为列名 area为表名
相关搜索:
相关阅读:
相关频道:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Mysql最近更新1 创建拼音和汉字的关系表
Table&&&&&&&&&& Create Table&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
--------------& ---------------------------------------------
cs_char2letter& CREATE TABLE `cs_char2letter` (&&&&&&&&&&&&
&&&&&&&&&&&&&&&&& `PY` char(1) character set utf8 NOT NULL,
&&&&&&&&&&&&&&&&& `HZ` char(1) NOT NULL default '',&&&&&&&&
&&&&&&&&&&&&&&&&& PRIMARY KEY& (`PY`)&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& ) ENGINE=InnoDB DEFAULT CHARSET=gbk
truncate table cs_char2
set names utf8;
insert into cs_char2letter values
('A','骜'),
('B','簿'),
('C','错'),
('D','鵽'),
('E','樲'),
('F','鳆'),
('G','腂'),
('H','夻'),
('J','攈'),
('K','穒'),
('L','鱳'),
('M','旀'),
('N','桛'),
('O','沤'),
('P','曝'),
('Q','囕'),
('R','鶸'),
('S','蜶'),
('T','箨'),
('W','鹜'),
('X','鑂'),
('Y','韵'),
('Z','咗');
3、取拼音首字母的函数:
DELIMITER //
DROP FUNCTION IF EXISTS `test`.`func_get_first_letter`//
CREATE DEFINER=`root`@`localhost` FUNCTION `func_get_first_letter`(
words&& varchar(255)) RETURNS& char(1) CHARSET utf8
BEGIN
& declare fpy char(1);
& declare pc char(1);
& declare cc char(4);
& set @fpy = UPPER(left(words,1));
& set @pc = (CONVERT(@fpy&& USING&& gbk));
& set @cc = hex(@pc);
& if @cc &= "8140" and @cc &="FEA0" then
&&& begin
&&&&& select PY from cs_char2letter where hz&=@pc limit 1 into @
&&&
& Return&& @
DELIMITER ;
4 测试结果:
select func_get_first_letter('我是月亮')
5 创建测试表
DROP&& TABLE&& IF&& EXISTS& `f1`;&
create table f1 (&
name varchar(30),&
pykey varchar(1)&
insert into f1(name) values&
('张三'),&
('李四'),&
('王五'),&
('赵六'),&
6 批量替换
update f1 set pykey = func_get_first_letter(name);
浏览: 20905 次
来自: 上海
当时装will-paginate的时候好像有点问题。其他的都是 ...
请问,有没有好的办法判断字符串的值是否为数字?
比如,3、1. ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 mysql汉字和字母 的文章

 

随机推荐