CREATE TABLE `testvarchar` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`urlId` int(10) unsigned NOT NULL DEFAULT '0',
`url` varchar(1000) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
insert into testvarchar (url) values ('https://www.abc.com/xxx/22277598?preview_for_ml=true'),('https://www.abced.jp/xxx/13008554'),('http://cd.qwer.com/asdf/17996991703.html'),('https://www.asd.com/zxc/ical/21853688.ics?s=92503680b6e4692f6a364503048bb964');
現在urlId欄位需要得到對應的url里的數字id
分別是22277598,13008554,17996991703,21853688
請問怎么用sql實作?
uj5u.com熱心網友回復:
SELECT testvarchar.*, REGEXP_SUBSTR (url, '[0-9]+') as nFROM testvarchar;
這條陳述句運行后 n就是 你想要截取的那段數字 具體的 你看看修改把
uj5u.com熱心網友回復:
MySQL 中沒有正則運算式的取值函式,針對你提供的資料特征,可以用下面的方法:
SELECT *,
SUBSTRING_INDEX( REPLACE(SUBSTRING_INDEX(url, '/', -1), '?', '.'), '.', 1) as 數字
FROM testvarchar
uj5u.com熱心網友回復:
上述查詢的規則是取 / 分隔的最后一段對于最后一段,再截取 ? . 之前的部分,如果沒有這兩個字符,則取全部資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/96652.html
標籤:MySQL
上一篇:資料倉庫分層是什么意思
