本文已参与「新人创作礼」活动,一起开启掘金创作之路。
我们在做开发过程中,可能经常会遇到多种支付方式,或者多种业务的模式
为了区分,我们可能会根据订单的前两位或者前几位固定值来区分,从而看出他是属于哪个支付或者业务。
因为业务的处理肯定都是不同的,例如增加积分,给哪些表里的哪些数据进行更新等。
这里我就以前两位作为例子,我们如何根据前两位来进行匹配呢?
方法有很多,在这里,我推荐三种匹配方法给到大家:
- 第一种是使用LEFT函数,函数使用方法介绍和使用如下:
LEFT(str,length);
注释:str是原串字段,length是要提取的长度(这里只能是正整数),该函数是从字符串左边开始进行匹配,返回填写的对应长度
实际使用:
mysql> SELECT LEFT('16012151311611231', 2);
+------------------------------+
| LEFT('16012151311611231', 2) |
+------------------------------+
| 16 |
+------------------------------+
1 row in set
- 第二种就是使用SUBSTRING函数,这个和程序上有所不同,程序是从0开始计数,但是这个函数使用是从1开始(千万不要记错哦)
SUBSTRING(str,position,len)
str是原串字段,position是一个定位,要从第几位开始就写几,len是要提取的长度,下面是从第一位开始取两位的实际使用例子
实际使用:
mysql> SELECT SUBSTRING('16012151311611231', 1, 2);
+--------------------------------------+
| SUBSTRING('16012151311611231', 1, 2) |
+--------------------------------------+
| 16 |
+--------------------------------------+
1 row in set
- 第三种是直接使用like查询,这个应该很多人都很熟悉了吧?没错,就是模糊查询,使用有模糊查询,可以在字段上加上索引,加快数据匹配
实际使用:
mysql> SELECT * from tableName where '16012151311611231' like '16%';
+--------------------------------------+
| 16012151311611231 |
+--------------------------------------+
1 row in set
以上就是为大家推荐的三种匹配方法,更多技术问题,后期会持续分享,大家记得关注哈
微信公众号:倒腾怪,期待你的关注