比如有个表内容数据格式是这样的
aaa$$bbb$http://abc.xxx.com$aaa
aaa$$bbb$http://abc.xxx.com$aaa
aaa$$bbbb$http://abc.xxx.com$aaa
aaa$$bbbb$http://abc.xxx.com$aaa
aaa$$bbb$http://abc.xxx.com$aaa
aaa$$bbb$http://abc.xxx.com$aaa
aaa$$bbb$http://abc.xxx.com$aaa
aaa$$bbb$http://abc.xxx.com$aaa
aaa$$bbbb$http://abc.xxx.com$aaa
aaa$$bbbb$http://abc.xxx.com$aaa
我想把http://abc.xxx.com 或者 abc.xxx.com 或者是xxx.com 的内容取出来,
试过网上的办法但效果不理想 ,我这个里面的bbb bbbb 不固定,会出现偏差
有什么办法可以 截取 开头http:// 与$aaa结尾 只提取 abc.xxx.com的办法吗
我这里帮你处理了你的问题,希望能帮助你
1、创建表及添加数据
CREATE TABLE test
(id
int(11) NOT NULL AUTO_INCREMENT,address
varchar(255) DEFAULT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
INSERT INTO test
VALUES (1, 'aaa$$bbb$http://abc.xxx.com$aaa');
INSERT INTO test
VALUES (2, 'aaa$$bbb$http://abc.xxx.com$aaa');
INSERT INTO test
VALUES (3, 'aaa$$bbbb$http://abc.xxx.com$aaa');
INSERT INTO test
VALUES (4, 'aaa$$bbbb$http://abc.xxx.com$aaa');
INSERT INTO test
VALUES (5, 'aaa$$bbb$http://abc.xxx.com$aaa');
INSERT INTO test
VALUES (6, 'aaa$$bbb$http://abc.xxx.com$aaa');
INSERT INTO test
VALUES (7, 'aaa$$bbb$http://abc.xxx.com$aaa');
INSERT INTO test
VALUES (8, 'aaa$$bbbb$http://abc.xxx.com$aaa');
INSERT INTO test
VALUES (9, 'aaa$$bbbb$http://abc.xxx.com$aaa');
2、编写sql查询你想要的数据
SELECT SUBSTRING(address,LOCATE('http://', address,1)+7,
LOCATE('$', address,LOCATE('http://', address,1)+1) - (LOCATE('http://', address,1)+7))
FROM test
;
3、结果贴图
找不到存储过程 'LOCATE'。 这个是什么情况 我用的是 sql2005
CREATE TABLE #test (
webaddress varchar(2000)
)
INSERT INTO #test VALUES ( 'aaa$$bbb$http://abc.xxx.com$aaa');
INSERT INTO #test VALUES ( 'aaa$$bbb$http://abc.xxx.com$aaa');
INSERT INTO #test VALUES ( 'aaa$$bbbb$http://abc.xxx.com$aaa');
INSERT INTO #test VALUES ( 'aaa$$bbbb$http://abc.xxx.com$aaa');
INSERT INTO #test VALUES ( 'aaa$$bbb$http://abc.xxx.com$aaa');
INSERT INTO #test VALUES ( 'aaa$$bbb$http://abc.xxx.com$aaa');
INSERT INTO #test VALUES ( 'aaa$$bbb$http://abc.xxx.com$aaa');
INSERT INTO #test VALUES ( 'aaa$$bbbb$http://abc.xxx.com$aaa');
INSERT INTO #test VALUES ( 'aaa$$bbbb$http://abc.xxx.com$aaa');
select webaddress,
substring(webaddress,CHARINDEX('http://',webaddress)+7,CHARINDEX('com',webaddress)+2-CHARINDEX('http://',webaddress)-6) as newaddress
from #test
drop table #test