今天 想模拟数据 为了 数据库分区用,想直接用mysql 实现 但是没有类似于php的explode 函数
gold.txt内容如下:
activity_find_back
add_jjc_chalenge_times
all_server_cup_egg
all_server_cup_encourange
all_server_cup_flower
all_server_cup_praise
all_server_cup_support
amulet_advance
amulet_growup_growup
amulet_growup_soul
amulet_growup_spirit
amulet_refresh_skill_book
equipment_lingyun
-- 获取有字符串 如上-面的例子 此方法会去掉'\n'
drop FUNCTION if exists `func_get_split_string`;
CREATE DEFINER=`pay_center`@`%` FUNCTION `func_get_split_string`( f_string varchar(1000),f_delimiter varchar(5),f_order int) RETURNS varchar(255) CHARSET utf8
DETERMINISTIC
BEGIN
declare result varchar(255) default '';
set result = reverse(substring_index(reverse(substring_index(f_string,f_delimiter,f_order)),f_delimiter,1));
return result;
END
=======================================================================
-- 根据'\n'为分割 统计有多少个
drop FUNCTION if exists `func_get_split_string_total`;
CREATE DEFINER=`pay_center`@`%` FUNCTION `func_get_split_string_total`(
f_string varchar(1000),f_delimiter varchar(5)
) RETURNS int(11)
DETERMINISTIC
BEGIN
-- Get the total number of given string.
return 1+(length(f_string) - length(replace(f_string,f_delimiter,'')));
END
=========================================================================
-- 执行
drop procedure if exists `sp_print_result`;
CREATE DEFINER=`pay_center`@`%` procedure `sp_print_result`(
IN rand_str varchar(10000),IN f_delimiter varchar(5)
)
set @rand_str = load_file('/tmp/gold.txt');
drop procedure if exists proce_range_partition_by_primary;declare cnt int default 0;
//这一行是注视
select cnt;
-- 因为mysqll 里没有类似于 php的 获取一个数组的随即单元的函数,所以我存到了 内存表里
set @username = upper(md5(concat(@i_s,@str)));
-- 随机取出一个值
end;