`
xautlx
  • 浏览: 12976 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

基于的MySQL纵向属性列表转换为横向字段列表脚本

阅读更多

内容摘自 http://git.oschina.net/xautlx/nutch-ajax 抓取数据持久化处理设计

MySQL解析数据存储

为了适应不同项目对不同感兴趣属性的解析存储,数据存储结构采用纵向的属性列表方式,即一个url页面多个属性存储多条记录方式,并且按照text,html,data,num几大典型类型分别对应存储。

创建UTF-8字符集的nutch数据库,并执行表初始化脚本,参考DDL:

CREATE TABLE `crawl_data` (
    `url` varchar(255) NOT NULL,
    `code` varchar(255) NOT NULL,
    `name` varchar(255) DEFAULT NULL,
    `category` varchar(255) DEFAULT NULL,
    `order_index` int(255) DEFAULT NULL,
    `fetch_time` datetime NOT NULL,
    `text_value` text,
    `html_value` text,
    `date_value` datetime DEFAULT NULL,
    `num_value` decimal(18,2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

在此输入图片描述

为了一般在业务系统获取同一个url的多个属性或友好查询显示,参考如下MySQL脚本实现把纵向的属性列表属性转换为横向的多列显示模式。网上有 相关参考脚本大多是基于数字字段sum汇总等模式的纵转横SQL脚本,本项目需求是单一的基于字符串信息转换,经过一段摸索最后找到基于 GROUP_CONCAT可以实现:

    SELECT url ,fetch_time, 
    GROUP_CONCAT(CASE WHEN  code = 'domain'  THEN  text_value ELSE  null  END)   AS  `domain`,
    GROUP_CONCAT(CASE WHEN  code = 'name'  THEN  text_value ELSE  null  END)   AS  `name`,
    GROUP_CONCAT(CASE WHEN  code = 'brand'  THEN  text_value ELSE  null  END)   AS  `brand`,
    GROUP_CONCAT(CASE WHEN  code = 'category'  THEN  text_value ELSE  null  END)   AS  `category`,
    GROUP_CONCAT(CASE WHEN  code = 'purpose'  THEN  text_value ELSE  null  END)   AS  `purpose`,
    GROUP_CONCAT(CASE WHEN  code = 'price'  THEN  num_value ELSE  null  END)   AS  `price`,
    GROUP_CONCAT(CASE WHEN  code = 'refPrice'  THEN  num_value ELSE  null  END)   AS  `refPrice`,
    GROUP_CONCAT(CASE WHEN  code = 'primaryImage'  THEN  text_value ELSE  null  END)   AS  `primaryImage`
    FROM crawl_data GROUP BY url,fetch_time

在此输入图片描述

1
0
分享到:
评论

相关推荐

    基于java的数据库脚本转换工具(mysql->oracle).zip

    标题中的“基于java的数据库脚本转换工具(mysql->oracle)”揭示了这是一个利用Java编程语言开发的实用程序,主要用于将MySQL数据库的脚本转换为适用于Oracle数据库的格式。这样的工具在数据迁移、系统升级或者多...

    数据库转换工具MySQL 转为SqlServer 脚本

    本主题聚焦于如何使用特定工具或脚本将MySQL数据库转换为SQL Server,这一过程通常称为“数据库迁移”。以下是关于这个过程的一些关键知识点: 1. **数据库迁移的目的**:迁移可能出于多种原因,如业务增长、性能...

    mysql横向转纵向、纵向转横向排列的方法

    有时我们需要将数据从横向排列(行格式)转换为纵向排列(列格式),反之亦然。这种转换在SQL中被称为“行列转换”,对于处理复杂的数据结构非常有用。本文将详细探讨如何在MySQL中进行这两种转换。 1. 横向转纵向...

    Oracle_Mysql_Sqlserver字段类型转换参考

    Oracle_Mysql_Sqlserver字段类型转换参考Oracle_Mysql_Sqlserver字段类型转换参考Oracle_Mysql_Sqlserver字段类型转换参考Oracle_Mysql_Sqlserver字段类型转换参考Oracle_Mysql_Sqlserver字段类型转换参考Oracle_...

    自动读取mysql数据库字段并自动生成java属性和set和get方法

    3. **解析字段信息**:根据查询到的元数据,解析每个字段,将其转换为Java属性。例如,数据库中的`varchar`类型可能对应Java的`String`,`int`对应`Integer`,以此类推。 4. **生成属性**:根据字段名,自动生成...

    MySQL查询把多列返回结果集拼装成一个字段

    单个列表中,需要显示不同快递公司的配送区域,相关表中存储是的对应的地区id字段 2主表中记录相关业务数据,然后关联相地址表处理结果集,就可以得到我们需要的结果 原数据 最终需要的数据 执行的SQL如下 SELECT ...

    windows上一键安装mysql的bat脚本(实测)

    本文将深入解析标题为"windows上一键安装mysql的bat脚本(实测)"的相关知识点,包括如何创建和理解批处理脚本,以及如何配置MySQL。 首先,批处理脚本(BAT)是基于DOS命令的一种程序,它可以执行一系列预先定义的...

    Mysql转oracle工具

    这个工具专注于将MySQL的数据库结构和数据转换为Oracle数据库兼容的格式。下面将详细解释这个过程涉及的知识点。 1. **SQL语言的差异**: MySQL和Oracle都是SQL数据库管理系统,但它们对SQL语法的实现有所不同。...

    淘淘商城mysql脚本

    1. 创建表:CREATE TABLE语句用于创建数据库表,包括定义各字段的名称、类型、长度、是否允许为空等属性。 2. 修改表:ALTER TABLE语句用于对已有的表进行修改,如添加、删除或修改字段,调整字段顺序,设置或取消...

    mysql转换postgresql工具

    国外大牛写的一个mysql数据库转换postgresql的脚本。亲试可以无错误运行。

    不乱码批量修改mysql数据库、表、字段编码(gbk到utf8php脚本)

    批量修改mysql数据库、表、字段编码(gbk到utf8php脚本) 可以把整个数据库、表、字段编码全部从gbk_chinese_ci 到 utf8_general_ci 转换,不会乱码哦 狂拽吊炸天!!!

    mysql8一键化安装脚本

    mysql8一键化安装脚本 1 可以自由安装在任何目录下(直接回车默认安装在/auto),而且所有的东西都在此目录下,不会出现在其他目录中 2 内置可以在存储过程中执行Linux命令插件 3 安装完成后,cd /auto/mysql/support-...

    linux一键安装mysql5.7和mysql8.0脚本

    该包中包含一键安装mysql5.7和mysql8.0脚本,分为mysql二进制包安装和yum安装,并一起部署MySQL备份策略 用于快速部署mysql场景,适合多项目快速部署 备份工具为xtrabackup

    机动车车牌归属地mysql脚本数据

    "mysql"表明这个脚本是基于MySQL数据库系统的,用户可能需要一定的MySQL基础来理解和利用这些数据。"车牌"则意味着数据的核心是关于汽车车牌的信息,可能包括车牌号码、省份、城市等字段。 在压缩包内的"car_area....

    工作流+MySQL创建数据库表脚本+字段释义

    工作流25张表,MySQL脚本语言,附带表及字段释义,供你拿来主义

    mysql5.7 windows bat脚本一键安装.zip

    这个名为"mysql5.7 windows bat脚本一键安装.zip"的压缩包文件提供了一个便捷的方法,通过批处理脚本来自动化这些过程,减少了手动操作的繁琐和出错的可能性。 批处理脚本(BAT脚本)是基于DOS命令的文本文件,可以...

    MySQL Migration Toolkit 数据库转换工具

    虽然是demo版本,但可以转换一些字段不是很长的数据库表。 MySQL Migration Toolkit v2.3 数据库转换工具 MySQL Migration Toolkit 可以将任何数据源转换成mysql的数据,也可以将mysql的数据转换成其它类型的数据 ...

    mysql批量增加字段.txt

    MySQL批量对表增加指定字段,会快速实现批量字段的添加。写了2个存储存储过程,执行即可。方便快速!

    基于存储过程的MySQL数据库BLOB字段访问.pdf

    "基于存储过程的MySQL数据库BLOB字段访问" 基于存储过程的MySQL数据库BLOB字段访问是指在MySQL数据库中使用存储过程来访问和处理二进制数据的方法。这种方法可以使得数据库的二进制数据处理变得更加方便和高效。 ...

    最新行政区划MYSQL脚本(世界+中国)

    文件名称列表只有一项:“最新行政区划MYSQL脚本(世界+中国)”,这可能是一个包含两个部分的脚本文件:一部分针对世界范围的行政区划,另一部分专门针对中国的行政区划。每个部分可能包含一系列CREATE TABLE语句来...

Global site tag (gtag.js) - Google Analytics