mysql + shell 随机字符的产生方法

5 篇文章 0 订阅

存储过程:

drop procedure if exists test;
delimiter //
CREATE PROCEDURE test()
BEGIN
declare str char(62) default 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
declare str6 char(1);
set str6 = substring(str,1+floor(rand()*61),1);
SELECT str6,LENGTH('');
END;	//
delimiter ;
CALL test();


生成小写字母
SELECT char(round((rand())*25)+97);
生成数字或大写字母

rand() 范围为0到1  注意乘25

select char(if(floor(rand()*2)=0,65+floor(rand()*25),48+floor(rand()*9)))


#!/bin/bash
#Usage:rand num
#产生顺序字符的函数,可参考:
#http://bbs.chinaunix.net/viewthread.php?tid=676397&extra=page%3D1
#略加修改即可 ^_^
#此处设定的是50位以内的,过多的话,或许有问题
#
[[ $# != 1 || $1 > 50 ]]&&{ echo "Usage ${0##/*} num";exit 1; }
array=(a b c d e f g h i j k l m n o p q r s t u v \
w x y z A B C D E F G H I J K L M N O P Q R S T U V\
W X Y Z 0 1 2 3 4 5 6 7 8 9)
rand_char=${array[$((RANDOM%${#array[@]}))]}
echo $rand_char
<<:EOF
echo $RANDOM
echo ${#array[@]}   #获取数组长度
echo ${array[0]}    #获取数组第一个元素
echo ${array[@]} #访问整个数组 ,@或者* 获取整个数组
echo ${array[@]::2} # 到第二个元素
echo ${array[@]:2} # 从第二个元素开始
    #http://blog.csdn.net/qq504196282/article/details/52995101
    for s in ${array[@]}
    do
        echo $s
    done
    len="${#array[@]}"
    for((i=0;i<$len;i++))
    do
        echo "${array[$i]}"
    done
:EOF
exit
dodo(){
        echo -n ${array[$((RANDOM%${#array[@]}))]}
}
i=1
n=$1
while((i<=n));do
        dodo
        ((i++))
done 2>/dev/null
echo

army_simple_rand="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
rand_char=$(mysql -u$db_user -p$db_password -h$db_host -e "select substring('$army_simple_rand', 1+floor(rand()*61), 1);" | grep -v 'substring')
echo $rand_char


参考: http://www.cnblogs.com/zejin2008/p/5253054.html

http://biancheng.dnbcw.net/linux/350574.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值