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

mysql数据库查询问题

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

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

我写个例子

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


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

听得有点懵

附耳聆听的gravatar头像
附耳聆听 LV208月6日

不知所云0.0

jiminmin的gravatar头像
jiminmin LV58月7日

听得有点乱

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

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

dongsir的gravatar头像
dongsir LV208月8日

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

kfq33122的gravatar头像
kfq33122 LV38月8日

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

duduyan的gravatar头像
duduyan LV48月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 LV38月9日

描述有点乱

all1050的gravatar头像
all1050 LV38月10日

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

xxdd520的gravatar头像
xxdd5208月21日

不知道楼主说的啥意思

阮班泳的gravatar头像
阮班泳 LV49月27日

不知所云。sad

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