码迷,mamicode.com
首页 > 数据库 > 详细

mysql使用SUBSTRING展示特定字段里面的特定字符

时间:2018-10-15 14:27:14      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:字符   字段   特定   mic   路径   str   com   HERE   nic   

场景: 测试人员需要查询特定字段里里面的特定字符串,但是正则不会写,看到了SUBSTRING来截取特定字符串,感觉不错。


1:数据如下
CREATE TABLE erp_orgs (
id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
path varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT ‘-‘ COMMENT ‘层级路径‘,
PRIMARY KEY (id) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5044 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;
2:插入数据
INSERT INTO hanye.erp_orgs(id, path) VALUES (1, ‘1-‘);
INSERT INTO hanye.erp_orgs(id, path) VALUES (2, ‘1-2-‘);
INSERT INTO hanye.erp_orgs(id, path) VALUES (3, ‘1-2-3-‘);
INSERT INTO hanye.erp_orgs(id, path) VALUES (4, ‘1-2-4-‘);
INSERT INTO hanye.erp_orgs(id, path) VALUES (5, ‘1-2-5-‘);
INSERT INTO hanye.erp_orgs(id, path) VALUES (6, ‘1-2-4-6-‘);
INSERT INTO hanye.erp_orgs(id, path) VALUES (7, ‘1-2-3-7-‘);
INSERT INTO hanye.erp_orgs(id, path) VALUES (8, ‘1-2-3-8-‘);
INSERT INTO hanye.erp_orgs(id, path) VALUES (9, ‘1-2-3-7-9-‘);
INSERT INTO hanye.erp_orgs(id, path) VALUES (10, ‘1-2-3-7-10-‘);

3:开始查询自己需要的字段
A:取path的字段的后面三位
select SUBSTRING(path, -3) from erp_orgs;
-2-
-3-
-4-
-5-
-6-
-7-
-8-
-9-
10- (未知结果 后续查找)
(重点: 如果字段长度不足 展示结果为空)
B:从左开始第3位取(包括第三位)
select SUBSTRING(path, 3) from erp_orgs;
C:取左边的3位
select SUBSTRING(path, 1,3) from erp_orgs;
这种只能针对固定长度,比说url共8个字符,可以下面这种写法
select SUBSTRING(path,length(url)-5) from erp_orgs;
4:正式查询 例如查询后面的数字为id的 一般后面都带有 - 字符
SELECT * from erp_orgs WHERE SUBSTRING(path,-2) = id;

mysql使用SUBSTRING展示特定字段里面的特定字符

标签:字符   字段   特定   mic   路径   str   com   HERE   nic   

原文地址:http://blog.51cto.com/9025736/2299950

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!