软件开发网站开发副业,网站seo外链接,godaddy备份wordpress,网站建设兼职挣多少钱MySQL的字符串函数非常多#xff0c;以至于有时候我不知道该如何灵活的使用这些函数。字符串基本信息函数 collation convert#xff0c;char_length等加密函数 password(x)#xff0c;encode, aes_encrypt字符串连接函数 concat(x1,x2,….)修剪函数 trim,ltrim,…MySQL的字符串函数非常多以至于有时候我不知道该如何灵活的使用这些函数。字符串基本信息函数 collation convertchar_length等加密函数 password(x)encode, aes_encrypt字符串连接函数 concat(x1,x2,….)修剪函数 trim,ltrim,rtrim子字符串操作函数 substring(x,start,length),mid(x,start,length)字符串复制函数 repeat,space字符串比较函数 strcmp字符串逆序函数 reverse如果真给一个场景还真说不定能够拍胸脯适合。假设我有如下的需求比如邮箱注册账号指定账号是以数字开头内容如下1234mail.com012345aa.mail.com1234mmmail.com1234testmail.com如果需要把里面的数字提取出来有什么好的办法呢。如果使用字符串函数一种方式就是使用正则或者直接给定条件来做过滤。比如replace(xxxx,right(xxx))还有一种思路就是创建一个函数或者存储过程通过结构化的方法来做转换。如上的几种方法其实都比较麻烦还有什么办法呢我就举一反三给出两个来。第一个解法就是使用字符串的数据类型转换。比如mysql select cast(123456xx.com as unsigned);------------------------------------| cast(123456xx.com as unsigned) |------------------------------------| 123456 |------------------------------------1 row in set, 1 warning (0.00 sec)我们可以很明显看到结果和一个警告。mysql show warnings;--------------------------------------------------------------------| Level | Code | Message |--------------------------------------------------------------------| Warning | 1292 | Truncated incorrect INTEGER value: 123456163.com |--------------------------------------------------------------------1 row in set (0.00 sec)解法二这个解法更简单有种鬼斧神工的感觉。mysql select -(-123456163.com);----------------------| -(-123456163.com) |----------------------| 123456 |----------------------1 row in set, 1 warning (0.00 sec)如果是前面含有冗余的数字也是可以转换的。mysql select -(-012345aa.mail.com);--------------------------| -(-012345aa.mail.com) |--------------------------| 12345 |--------------------------1 row in set, 1 warning (0.00 sec)