当前位置:C++技术网 > 资讯 > mysql将一个字段拼接并加入随机数字的实现

mysql将一个字段拼接并加入随机数字的实现

更新时间:2018-06-16 00:46:10浏览次数:1+次

    在数据库的数据处理的过程中,我们可能会遇到这种情况,我们需要将一个字段批量处理一下,需要按照一个格式来处理,但是因为数据量大,手动处理可能不太现实,那么就需要直接使用sql语句来实现了。因为这是比较复杂点的功能,用的少,所以很多人都不太熟悉,就此我将我的方法介绍给大家。
    那么在这里演示的规则是这样的:我需要在一个字段的前面统一加一个前缀,然后取现有字段的后几个字符,再在后面接上1000以内的随机数字的字符串,然后更新到表里。
    功能点提取:前缀字符串+字符串截取末尾字符串+随机数字字符串+字符串拼接。
1.前缀字符串
    对于前缀字符串,很简单。我们只要输入一个字符串即可。
2.字符串截取末尾字符串
    截取字符串末尾几个字符,则需要mysql的字符串截取函数,截取末尾的用right(字段名,截取的长度),截取开头可以用left(字段名,截取的长度)等。
3.随机数字字符串
    mysql产生随机数字字符串,则需要使用函数rand()。将rand()*1000就可以得到0-999之间的数,不过是带有小数点的,所以我们使用floor函数返回小于或等于所给数字表达式的最大整数。此时我们得到的还是数字,如果要和其他字符串拼接,我们就需要将数字转为字符串。转换数据类型,mysql使用cast函数。
    cast语法如下:
cast(值 as 数据类型 )
    数据类型基本和C语言一致。int为整形,char为字符。字符串使用char。更多详细的,请查询mysql的相关文档。
4.字符串拼接
    最后我们得到了输入的字符串,截取后的字符串和转换后的字符串,最后就是要将三个字符串拼接起来。拼接字符串使用的mysql函数为concat(字符串1,字符串2,字符串3,...)。此函数可以拼接N个字符串为一个完整的字符串,按照填进去的顺序拼接。
5.查询处理后的字符串
select CONCAT('pre-' , RIGHT(content,2),cast( floor(rand()*1000) as char) ) from advice 

    这个sql语句是将建议表advice的content字段的内容作了如上的处理。如果需要更新,按照如下语句执行就可以了:
update advice set content = CONCAT('pre-' , RIGHT(content,2),cast( floor(rand()*1000) as char) )

    提醒一下,更新时记得要小心,谨慎操作哈。