all1050的gravatar头像
all1050 2018-08-06 10:40:03

mysql数据库查询问题

我想从mysql数据库中某一个字段内,提取他固定格式的数据,比如说在一个字段里数据为

“~ABC~”前面两个~之间我需要然后“#100*100*10#”两个#之间的进行计算

我写个例子

'~abc~面积为#120*100*10#'


最代码官方编辑于Aug 6, 2018 1:39:28 PM
所有回答列表(11)
最不屑一顾是相思的gravatar头像
最不屑一顾是相思  LV19 2018年8月6日

听得有点懵

丶附耳聆听的gravatar头像
丶附耳聆听  LV21 2018年8月6日

不知所云0.0

jiminmin的gravatar头像
jiminmin  LV6 2018年8月7日

听得有点乱

电饭煲的gravatar头像
电饭煲 2018年8月7日

这个sql语句来实现非常难,最简单的还是用外部工具查出来以后用正则表达式提取出来需要的字符串,然后将字符串执行就可以了。

dongsir的gravatar头像
dongsir  LV20 2018年8月8日

过于复杂的逻辑不建议完全依赖SQL

kfq33122的gravatar头像
kfq33122  LV4 2018年8月8日

你这个 abc/  100*100 是在同一个字段还是不同字段呢 

duduyan的gravatar头像
duduyan  LV11 2018年8月9日

一个字段里有~abc~包含面积#10*10*10#内容你想把abc和10*10*10取出来计算,是这样嘛?oracle 是select substr('~abc~123#10*10#', instr('~abc~123#10*10#', '~') + 1, instr('~abc~123#10*10#', '~', instr('~abc~123#10*10#', '~') + 1) - instr('~abc~123#10*10#', '~') - 1)||'='|| substr('~abc~123#10*10#', instr('~abc~123#10*10#', '#') + 1, instr('~abc~123#10*10#', '#', instr('~abc~123#10*10#', '#') + 1) - instr('~abc~123#10*10#', '#') - 1) from dual; 这样的

mysql

SELECT substring_index(substring_index(t.`name`,'~',2),'~',-1),substring_index(substring_index(t.`name`,'#',2),'#',-1) from test t ;##源字符串dd~abc~hehhe#10*10#是这样的

 

luleilei的gravatar头像
luleilei  LV3 2018年8月9日

描述有点乱

all1050的gravatar头像
all1050  LV3 2018年8月10日

各位,已经解决,谢谢大家

xxdd520的gravatar头像
xxdd520 2018年8月21日

不知道楼主说的啥意思

阮班泳的gravatar头像
阮班泳  LV4 2018年9月27日

不知所云。sad

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友