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
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