MYSQL生成中文名字

前段时间需要数据库自动生成人名的需求,上网找了下

使用方法:调用 create_name 函数即可。

注:
姓现在只有单姓的,复姓直接往数据库中加,如果字段太短修改字段长度;
名部分是从所有汉字中随机取的,所以可能导致生成的名字有点搞笑 :-)




参考:http://www.cnblogs.com/chinaprg/archive/2006/10/08/523335.html

下面SQL脚本
/*

    author:dany
    email: dany.zj.cn@gmail.com
    blog:http://blog.csdn.net/dany_zj/

*/





#
# Structure 
for  the `xb100`  table  : 
#

DROP   TABLE   IF   EXISTS  `xb100`;

CREATE   TABLE  `xb100` (
  `name` 
char ( 2 NOT   NULL ,
  `q` 
tinyint ( 1 NOT   NULL   DEFAULT   ' 5 ' ,
  
PRIMARY   KEY  (`name`)
) ENGINE
= MyISAM  DEFAULT  CHARSET = utf8 ROW_FORMAT = FIXED;

#
# Data 
for  the `xb100`  table   (LIMIT  0 , 500 )
#

INSERT   INTO  `xb100` (`name`, `q`)  VALUES  
  (
' ' , 1 ),
  (
' ' , 1 ),
  (
' ' , 1 ),
  (
' ' , 3 ),
  (
' ' , 5 ),
  (
' ' , 3 ),
  (
' ' , 5 ),
  (
' ' , 1 ),
  (
' ' , 1 ),
  (
' ' , 2 ),
  (
' ' , 2 ),
  (
' ' , 9 ),
  (
' ' , 1 ),
  (
' ' , 9 ),
  (
' ' , 2 ),
  (
' ' , 3 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 3 ),
  (
' ' , 9 ),
  (
' ' , 8 ),
  (
' ' , 3 ),
  (
' ' , 5 ),
  (
' ' , 4 ),
  (
' ' , 3 ),
  (
' ' , 1 ),
  (
' ' , 2 ),
  (
' ' , 9 ),
  (
' ' , 4 ),
  (
' ' , 3 ),
  (
' ' , 4 ),
  (
' ' , 7 ),
  (
' ' , 4 ),
  (
' ' , 9 ),
  (
' ' , 7 ),
  (
' ' , 5 ),
  (
' ' , 6 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 3 ),
  (
' ' , 6 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 4 ),
  (
' ' , 5 ),
  (
' ' , 8 ),
  (
' ' , 9 ),
  (
' ' , 6 ),
  (
' ' , 4 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 3 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 6 ),
  (
' ' , 9 ),
  (
' ' , 6 ),
  (
' ' , 4 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 7 ),
  (
' ' , 3 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 5 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 3 ),
  (
' ' , 9 ),
  (
' ' , 4 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 7 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 2 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 4 ),
  (
' ' , 9 ),
  (
' ' , 6 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 6 ),
  (
' ' , 9 ),
  (
' ' , 7 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 8 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 5 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 7 ),
  (
' ' , 8 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 4 ),
  (
' ' , 3 ),
  (
' ' , 5 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 7 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 3 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 6 ),
  (
' ' , 2 ),
  (
' ' , 7 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 6 ),
  (
' ' , 5 ),
  (
' ' , 6 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 8 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 5 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 5 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 4 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 6 ),
  (
' ' , 7 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 4 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 7 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' 羿 ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 8 ),
  (
' ' , 9 ),
  (
' ' , 5 ),
  (
' ' , 9 ),
  (
' ' , 8 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' 宿 ' , 9 ),
  (
' ' , 7 ),
  (
' 怀 ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 6 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' 寿 ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 5 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 6 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' 广 ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 4 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 ),
  (
' ' , 9 );

COMMIT ;

#
# Definition 
for  the `get_hanzi_code`  function  : 
#

DROP   FUNCTION   IF   EXISTS  `get_hanzi_code`;

CREATE  DEFINER  =   ' root ' @ ' localhost '   FUNCTION  `get_hanzi_code`()
    
RETURNS   char ( 1 ) CHARSET gb2312
    
NOT  DETERMINISTIC
    NO SQL
    SQL SECURITY DEFINER
    COMMENT 
''
BEGIN

DECLARE  v_c1  INT ;
DECLARE  v_c2  INT ;
DECLARE  v_c3  INT ;
DECLARE  v_c4  INT ;

SET  v_c1  =   11 + FLOOR ( RAND () * 3 );
IF  v_c1 = 13   THEN
   
SET  v_c2  =   FLOOR ( RAND () * 7 );
ELSE
   
SET  v_c2  =   FLOOR ( RAND () * 16 );
END   IF ;

SET  v_c3  =   FLOOR ( 10 + RAND () * 5 );

SET  v_c4  =   FLOOR ( RAND () * 15 ) + 1 ;

RETURN   CHAR (((v_c1 << 12 ) + (v_c2 << 8 ) + (v_c3 << 4 ) + (v_c4)) using gb2312);

END ;

#
# Definition 
for  the `create_name`  function  : 
#

DROP   FUNCTION   IF   EXISTS  `create_name`;

CREATE  DEFINER  =   ' root ' @ ' localhost '   FUNCTION  `create_name`()
    
RETURNS   varchar ( 4 ) CHARSET utf8
    
NOT  DETERMINISTIC
    
CONTAINS  SQL
    SQL SECURITY DEFINER
    COMMENT 
''
BEGIN

DECLARE  v_result  CHAR ( 4 );
DECLARE  v_q  INT ;
DECLARE  v_x  CHAR ( 2 );

set  v_q  =   RAND () * 10 + 1 ;

SELECT  name  INTO  v_x
FROM  xb100
WHERE  q <= v_q
ORDER   BY   RAND ()
limit 
1 ;

SET  v_result  =  CONCAT(TRIM(v_x),get_hanzi_code(),get_hanzi_code());
   IF
RAND ()<0.7 THEN
         
SET  v_result  =  CONCAT( result ,get_hanzi_code());
   END IF;

RETURN  v_result;
--  
END ;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值