存储过程:
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