mysql解析資料 解析資料儲存MySQL

2021-10-17 22:43:02 字數 1521 閱讀 4281

為了適應不同專案對不同感興趣屬性的解析儲存,資料儲存結構採用縱向的屬性列表方式,即乙個url頁面多個屬性儲存多條記錄方式,並且按照text,html,data,num幾大典型型別分別對應儲存。

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

Mysql 儲存過程解析

儲存過程語法 create procedure sp name proc parameter characteristic.routine body 1 其中proc parameter的規定如下 proc parameter in out inout param name type in 表示當我...

MySQL資料型別解析

mysql支援大量的列型別,它可以被分為3類 數字型別 日期和時間型別以及字串 字元 型別。本節首先給出可用型別的乙個概述,並且總結每個列型別的儲存需求,然後提供每個類中的型別性質的更詳細的描述。概述有意簡化,更詳細的說明應該考慮到有關特定列型別的附加資訊,例如你能為其指定值的允許格式。由mysql...

mysql資料型別解析

mysql支援所有標準sql中的數值型別,其中包括 嚴格資料型別 integer,smallint,decimal,numberic 近似值資料型別 float,real,double presision 擴充套件後增加了tinyint,mediumint,bigint這3種長度不同的整形 並增加了...