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

如果你有一字段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 '(comtelmobinetorgasiametvbizccnameinfo)(\\.[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
时间: 7.172ms

时间: 2024-08-03 14:17:32

mysql中从字段中URL提取域名信息的相关文章

comBox绑定SQL Server数据库中时间字段中的不重复的年份

  关于comBox绑定SQL Server数据库中时间字段中的不重复的年份如下: private void Education_Training_Load(object sender, EventArgs e) { MyDBase DB = new MyDBase(DBUser.sserver, DBUser.DBName, DBUser.suser, DBUser.spasswd); DataSet DS = DB.GetRecordset("select distinct (year(da

ole-如何从Access中OLEObject字段中导入和导出文件?

问题描述 如何从Access中OLEObject字段中导入和导出文件? 情形: 已 经有一个Access2010版的数据库,有多个表,每个表又有上千个记录,每个记录对应着一个Html文件,html文件单独放在一个文件夹中,文件名为table_id格式.这样每次编辑一条记录时,从几千个文件中查看并编辑对应的Html文件就很不方便. 现在打算添加一个EObject字段来存放该文件,这样操作的时候,可以直接双击该字段在编辑器中打开文件进行编辑.当然数据库体积会增大,这个可以接受. 问题: 记录有很多,

flash中文本字段中嵌入SWF代码

创建一个新的 Flash 文档. 将文档的舞台大小调整为 100 像素乘以 100 像素. 使用矩形工具在舞台上绘制一个红色正方形. 通过使用"属性"检查器将该正方形大小调整为 80 像素乘以 80 像素,然后将该形状移动到舞台中央. 在时间轴上选择第 20 帧,然后按 F7(Windows 或 Macintosh)插入一个新的空关键帧. 使用椭圆工具在舞台上第 20 帧绘制一个蓝色的圆形. 通过使用"属性"检查器将该圆形大小调整为 80 像素乘以 80 像素,然后

mysql替换某个字段中的某个字符

比如: Msql里面的某个表的某个字段里面存储的是一个人的地址,有一天这个地址的里面的某个地名变了,那么他的地址也就要变:比如: 原来是: number addr 01 中国浙江xxx 02 中国浙江xxx 03 中国浙江xxx  现在地址改了 浙江 搬到了 上海 ··· 所以,addr字段里面的所有的值,都要把 浙江 改为 上海 解决方法: sql语句: update 表名 set 字段名=REPLACE (字段名,'原来的值','要修改的值') 当然,也可以添加条件: update test

mysql查询字段中带空格的值的sql语句

  (1)mysql replace 函数 语法:replace(object,search,replace) 意思:把object中出现search的全部替换为replace  代码如下     update `news` set `content`=replace(`content`,' ','');//清除news表中content字段中的空格 这样就可以直接用like查询了. (2)mysql trim 函数 语法:trim([{BOTH | LEADING | TRAILING} [r

mysql replace 批量替换字段中的值例子

命令 UPDATE 表名 SET 指定字段 = replace(指定字段, '要替换的字符串', '想要的字符串') WHERE 条件; 例子  代码如下 复制代码 UPDATE article SET content = replace(content, '解决', '解放') WHERE ID<5000; 例子 项目中有可能会遇到批量替换字段中的值,如下需求: 把上图中img_path字段中的upload全部替换成uploads,这个时候mysql的replace函数就很有用了.   sql

PHP实现通过URL提取根域名_php技巧

PHP根据URL提取根域名,个人工作中用到,由于网络上很多代码都不能得到正确结果就自己写了一个,欢迎大家使用并提出其中的bug. <?php #使用示例 echo getBaseDomain('http://blog.jp.goo.ne.jp/index.php')->domain;echo "\n"; echo getBaseDomain('http://51.ca/index.php')->domain;echo "\n"; echo getB

mysql-求助.数据库中某一字段不含空格,但导出的dbf文件中同一字段却加了空格

问题描述 求助.数据库中某一字段不含空格,但导出的dbf文件中同一字段却加了空格 数据库使用的是Mysql5.1,在系统中要读取数据库并将记录导出成为dbf格式的表格,可是数据库中某一字段值不含空格,但导出的dbf文件中同一字段中的值却加了空格,请问大神们是什么原因,该如何改动,顺便求教这里如何发送本地图片此处是截图 解决方案 导出或导入时过滤下空格

请教select语句写法,数据库中学号字段第三位符合就选出。

问题描述 学号姓名--0408101张三*0408102张三*0407103张三0407101张三现在想把数据库中学号字段中第三四位为08的数据筛选出来(打*号的),这样的select语句该怎么写?高手指教! 解决方案 解决方案二:select*fromtabwheresubstring([学号],3,2)='08'解决方案三:select学号,姓名fromstuwheresubstring(convert(nvarchar(100),学号),2,2)='08'