1. 程式人生 > >mysql 根據 某個欄位 把一行資料拆成多行

mysql 根據 某個欄位 把一行資料拆成多行

原始表的資料


處理成的臨時表的資料


最終表的資料:


程式碼如下: 僅供參考:

CREATE DEFINER=`data_mining`@`%` PROCEDURE `new_procedure_test`()
BEGIN


declare num int ;
declare vsql longtext;
declare count int;
set vsql='';


drop table if exists crm_excel.customer_clue_detail_temp;


create table crm_excel.customer_clue_detail_temp(id int PRIMARY KEY auto_increment 
, cus_clue_id varchar(5000));


insert into crm_excel.customer_clue_detail_temp(cus_clue_id)
select replace(clue_id,'select ',concat('select ',id,' as id,')) as cus_clue_id
from 
(
select id , 
replace(concat('select ', clue_id  ),',',' as clue_id  union all  select ') as clue_id
from weixin_crm.newcrm_customer a
 where clue_id like '%,%'
 ) a ;
 
select  count(1) into count from crm_excel.customer_clue_detail_temp;
set @str = (select cus_clue_id  from crm_excel.customer_clue_detail_temp where id=1);
set

[email protected];
set num=2;


while num <= count do 


set @str = (select cus_clue_id  from crm_excel.customer_clue_detail_temp where id=num);
set vsql=concat(vsql,' union all ' , @str);
set num=num+1;
end while;
set vsql=concat('insert into crm_excel.customer_clue_detail(cus_id,clue_id)', vsql );
set @v_sql=vsql;
#select  @v_sql;
prepare stmt from @v_sql;
execute stmt  ;
deallocate prepare stmt;


END

相關推薦

mysql 根據 某個 一行資料

原始表的資料 處理成的臨時表的資料 最終表的資料: 程式碼如下: 僅供參考: CREATE DEFINER=`data_mining`@`%` PROCEDURE `new_procedure_test`() BEGIN declare num in

Java 兩個list資料根據某個合併

之前遇到一個需求,欄位是每小時那種(2018101208)。然後服務給我資料少了部分。然後我需要自已推算。然後補上沒有那些小時為單位的資料。這裡面也涉及到了自已設計出來資料list是全面的。所有的小時都有。然後把伺服器獲取list根據這個進行對比,補上伺服器沒有的小時數。兩個

mysql根據時間查詢一天內,一週,一個月內的資料

原文路徑:https://www.cnblogs.com/Luouy/p/7590812.html,原文應該也是各處摘抄的,此處做了一些去重處理。查詢一天:select * from 表名 where to_days(時間欄位名) = to_days(now());selec

mysql FIND_IN_SET查詢 ,拼接資料是否存在某個值 in查詢存在某個陣列中

先來表m_u_r設計圖結構 這種適用用find_in_set,可能有些大神認為為撒不用like匹配多好就例如上圖資料如果查詢 like %1%裡面所有包含一 的都會查出來 先來一條sql語句fi

基於JavaScript實現Json資料根據某個(json中的某個屬性)進行排序

在實際開發中,有一種需求是當前臺獲取後臺傳過來的json資料時,比如,需要按照json資料中查詢的某個屬性(某個欄位)進行排序,好比,我需要顯示某個事項要按照第1階段、第2階段等等以此類推的顯示。我的json中查詢到資料對應的階段和階段內容,那麼如果我不進行任何處理,那麼顯

mysql分組後計算分組的組數和根據某個去重計數

計算分組的組數SELECT count(1) from (select COUNT(1) as sum FROM TM_APP_MAIN A INNER JOIN TM_APP_PRIM_APPLIC

mysql資料庫中某個資料為分號分割的資料,將該資料拆分

SELECTcount(id) AS counts ,TITLE,CODE,chaifenFROM(SELECTt.CODE,t.TITLE,t.ID,substring_index(substring_index(t.CODE,';',b.help_topic_id + 1

Mysql查詢某個出現的次數並按倒序排列

問題:mysql資料庫表名address,查詢城市city欄位出現的次數並按倒序排列   查詢語句 select city,count(*) from address group by city order by count(*)  desc 執行結果如圖,按查詢欄位(城

將List中某個相同的資料相加(統計出現了幾次)

//取出初始資料 List<LdpaMtxfjlb> LdpaMtxfjlbList = ldpaMtxfjlService.selectAllInfo(); Map<String,Integer> map = new HashMap<>();

如何編寫一條SQL實現根據某個的條件對某個進行不同的update操作

例如:有一個user_notice表,裡面有一個count欄位,是代表當前使用者有多少條需要閱讀的訊息的,閱讀完畢以後,會更新改欄位,統一減去1或者指定的數值(例如全部置為已讀),因此如果count欄位的數值小於閱讀的數量,會出現負數的情況,可以這樣寫SQL語句避免: 例如要減去的數量是6:

php二維陣列根據某個去重

php的二維陣列根據某個欄位去重,在這預設為二維陣列的結構是一樣的,現在根據二維數組裡的id欄位去重,把id相同的重複的元素去掉 /** * 二維陣列根據某個欄位去重 * @param array $array 二維陣列 * @para array 去重後的陣列 */ private funct

根據某個去重 根據另一個排序的一個SQL

背景:一張表 有 name , crt_time , work_sts 三個欄位 這張表裡存在這樣的資料 'a', '2018-12-18 21:37:24', '未''a', '2018-12-19 09:37:24', '完''a', '2018-12-19 21:37:24', '未''b', '2

Oracle 根據某個對查詢結果去重 三種方法詳述

Oracle三種去重的方法 distinct group by rowid 分組函式:作用於一組資料,並對一組資料返回一個值 常見的分組函式有: count 返回找到的記錄數 min 返回一個數字列或計算列的最小值 max 返回一個數字列或計算列的最

mysql 查詢某個資訊,由個id逗號隔開拼裝

select a.SUPPLIER_USER_ID,GROUP_CONCAT(d.ITEM_NAME) AS countyName from p_supplier_user a LEFT JOIN t

mysql 按照某個括號裡的字串排序

最近寫一個查詢排序按照一個欄位的括號裡的一段欄位排序: description 顯示為 Buyer's Guide(English) 或者 Buyer's Guide(中文) 讓這個欄位按照英語排序 可以用下面的方法: SELECT* from mot_media w

oracle根據某個去重查詢例項

if not object_id(‘Tempdb..#T’) is null drop table #T Go Create table #T([ID] int,[Name] nvarchar(1),[Memo] nvarchar(2)) Ins

mysql某個中其中一個字元出現的次數

利用Mysql提供的replace、length方法完美解決 select name,term_id,parent,path from terms where status = 1 and  

Java -- 物件如何根據某個排序

package com.redhorse.bean; import com.redhorse.util.DateUtil; import java.util.ArrayList; import java.util.Collections; import ja

PHP 資料庫中某個儲存的資料是陣列資料時,怎樣獲取並解析

當資料庫中某欄位儲存的資料是  陣列資料的時候 array ( 0 => array ( 'name' => 'xxx', '13fds' => '123123', 'dfsa' => '4444', 'fd

mysql 替換某個中的某個字元

Msql裡面的某個表的某個欄位裡面儲存的是一個人的地址,有一天這個地址的裡面的某個地 名變了,那麼他的地址也就要變: 比如: 原來是: 表名:user_item,欄位:addr number addr 01 四川省成都市X