程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql中從字段中URL提取域名信息

mysql中從字段中URL提取域名信息

編輯:關於MYSQL數據庫
如果你有一字段dm記錄了一個url,為了更好的優化模糊查詢速度或統計速度,在數據表原有的結構上增加3個字段,分別為

  `sdm` varchar(64) NOT NULL, #subdomain記錄子域名,如:123456.user.qzone.QQ.com

  `tdm` varchar(32) NOT NULL, #topdomain記錄一級域名,如:QQ.com

  `rdm` varchar(8) NOT NULL, #rootdomain記錄根域,如:com

  操作順序

  # 1、為表增加字段

  ALTER TABLE `tablename` ADD `sdm` varchar(64) NOT NULL, ADD `tdm` varchar(32) NOT NULL, ADD `rdm` varchar(8) NOT NULL;

  # 2、提取url中的域名信息

  UPDATE `tablename` SET `sdm`=SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(`dm`, '/', 3), '/', -1) ,':',1);

  # 3、提取域名中的根域

  UPDATE `tablename` SET `rdm`=(IF(`sdm` REGEXP '(com|tel|mobi|net|org|asia|me|tv|biz|cc|name|info)(\.[a-zA-Z]{2})$', SUBSTRING_INDEX(`sdm`, '.', -2), IF(`sdm` REGEXP '([a-zA-Z]{2,4})$', SUBSTRING_INDEX(`sdm`, '.', -1), '')));

  # 4、根據子域名和根域取一級域名

  UPDATE `tablename` SET `tdm`=CONCAT(SUBSTRING_INDEX(TRIM(TRAILING `rdm` FROM `sdm`), '.', -2), `rdm`) ;

  執行結果:

  影響的數據欄: 126978

  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved