mysql拼音转化
2015-09-28 15:28
519 查看
DELIMITER $$ DROP FUNCTION IF EXISTS f_GetPY $$ DROP FUNCTION IF EXISTS fristPinyin $$ CREATE FUNCTION `fristPinyin`(P_NAME VARCHAR(50)) RETURNS VARCHAR(50) CHARSET utf8 BEGIN DECLARE V_RETURN VARCHAR(255); DECLARE V_RETURN1 VARCHAR(20); SET V_RETURN = ELT(INTERVAL(CONV(HEX(LEFT(CONVERT(P_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'); SET V_RETURN1 = IF(IFNULL(V_RETURN,'') = '',P_NAME,V_RETURN); RETURN V_RETURN1; END $$ CREATE FUNCTION `f_GetPY`(P_NAME VARCHAR(50)) RETURNS VARCHAR(50) BEGIN DECLARE V_COMPARE VARCHAR(255); DECLARE V_RETURN VARCHAR(255); DECLARE I INT; SET I = 1; SET V_RETURN = ''; WHILE I < LENGTH(P_NAME) DO SET V_COMPARE = SUBSTR(P_NAME, I, 1); IF (V_COMPARE != '') THEN SET V_RETURN = CONCAT(V_RETURN, fristPinyin(V_COMPARE)); END IF; SET I = I + 1; END WHILE; IF (ISNULL(V_RETURN) OR V_RETURN = '') THEN SET V_RETURN = P_NAME; END IF; RETURN V_RETURN; END $$ DELIMITER ;
相关文章推荐
- 如何解决局域网内mysql数据库连接慢
- mysql带参存储过程小例子
- mysql 数据库操作
- mysql学习之配置及常见命令
- MySQL存储过程调试工具-dbForge Studio for MySQL
- mysql EXPLAIN--执行计划
- MySql集群搭建
- sails 与mysql的连接
- mysql 数据表读锁机制详解
- Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
- mysql 触发器中操作 动态表名 的解决办法
- mysql 操作 指南
- MySql批量更新方法
- MySql批量更新方法
- mysql创建存储过程 定时调用
- mysql 定时执行存储过程
- MySql修改表结构
- MySQL InnoDB MVCC实现原理
- 允许远程用户登录访问mysql的方法
- MySQL重连,连接丢失问题解决