sql如何获取字符串中的指定字符

sql如何获取字符串中的指定字符,第1张

1、创建测试表,

create table test_int(value varchar2(50))

2、插入测试数据

insert into test_int values('asdfdsf?d=123&ewv')

insert into test_int values('qwer?d=234')

insert into test_int values('asfdwe?d=234&dhewu')

insert into test_int values('adfasf?d=25&reuw')

insert into test_int values('afhkashf')

commit

3、查询表中全量数据,select t.*, rowid from test_int t

4、编写sql,获取字符中的指定字符

select t.*,

     case

       when instr(value, 'd=') = 0 then

        null

       else

        substr(value,

               instr(value, 'd='),

               case

                 when instr(value, '&') = 0 then

                  10

                 else

                  instr(value, '&') - instr(value, 'd=')

               end)

     end a

from test_int t

DROP TABLE IF EXISTS `test_user`

CREATE TABLE `test_user`  (

  `id` int(11) NOT NULL,

  `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,

  `hobby` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,

  PRIMARY KEY (`id`) USING BTREE

) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic

INSERT INTO `test_user` VALUES (1, 'beibei', 'feifei,guanguan,xiangxiang')

INSERT INTO `test_user`(`id`, `name`, `hobby`) VALUES (2, 'feifei', 'call')

表结构如下:(注意两个字符串之间的分割是英文逗号)

参数一:表示要查询的字符串。

参数二:表示在表中的哪个字段中查询,填字段名。

例如:FIND_IN_SET("feifei",hobby)

执行结果如下:

执行语句如下:

SELECT * FROM test_user WHERE hobby like '%guanguan%'

执行结果如下:

具体步骤如下:

1,把所有表的结构和数据导出为文本的.sql文件,用文本编辑软件word或者dw等都可以,用替换方法比如把字符A替换为B,但这有可能误 *** 作,所以要慎重查看;

2,替换完以后,再利用mysql数据管理软件,把SQL文件导入到新的数据库中,进行严格测试,通过后;把旧版数据备份(主要为了安全着想),然后导入新的数据即可完成所需 *** 作。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6668264.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存