mysql特殊語法

#增加自增長主鍵
alter table table_name
    add COLUMN id bigint not NULL primary key auto_increment;
#去表內的空格和換行符號
UPDATE table_name
SET id_type = REPLACE(REPLACE(id_type,char(10), ''), char(13), '');
#去除重複數據
DELETE FROM view_data.trend_interaction_detail
   WHERE id NOT IN (
      SELECT temp.min_id FROM (
                                    SELECT MIN(id) min_id FROM view_data.trend_interaction_detail
                                    GROUP BY interaction_content,interaction_type,artist_name,platform_name,date_format(generate_timestamp,'%Y %m %d')
         )AS temp
   );
##查找月份
select *
from table_name where 表示月份時間的字段=date_format(date_add(curdate(),interval -1 month),'%Y %m');
###每月最大一天
select *
from table_name
where 月份 in
      (select max(時間) from table_name as b group by X, X)
group by X, X;### 根據時間分組,找到最大時間,再去匹配最大時間對應的數據

#兩個字段進行匹配查找

select *
from XXX as b,
     XXX as a
where b.XXX like CONCAT('%', a.name, '%')
group by b.hot_select_detail;
#獲取指定月份的數據
SELECT * FROM 表名 WHERE DATE_FORMAT( 時間字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' );
#修改字段名
ALTER  TABLE 表名 CHANGE 舊字段名 新字段名 新數據類型;
#修改字段類型
ALTER  TABLE 表名 MODIFY COLUMN 字段名 新數據類型 新類型長度  新默認值  新註釋;
#更新字段中部分內容
UPDATE center_data_report.trend_word_cloud
SET `pic_url` = replace(`pic_url`, '/20191104/', '/dy/20191104/')
WHERE `pic_url` LIKE '%%/20191104/%%' and platform_name ='抖音'
  and create_times = '2019-11-04';
#分組查找top X數據
select artist_third_id,wy_artist_name,wy_song_id,wy_song_name,wy_song_album,wy_song_album_id
from temp_wy_song_list a
where exists(select count(*) from temp_wy_song_list where wy_artist_name = a.wy_artist_name and wy_comment_count > a.wy_comment_count having Count(*) < 10 )
 order by a.wy_artist_name;  查找每個小組裏面最大的是個分組
#某段範圍內的某數據的最大值
select
a.* from test a,
(select type,max(typeindex) typeindex from test group by type) b
where a.type = b.type and a.typeindex = b.typeindex order by a.type;
#多表連接
select s.Name,C.Cname from student_course as sc left join student as s on s.Sno=sc.Sno left join course as c on c.Cno=sc.Cno
#一行變多行
select chart_date,
       chart_name_id,
       chart_name,
       a.`rank`,
       track_third_id,
       platform_track_name,
       substring_index(substring_index(a.artist_third_id, ',', b.AutoIncreID + 1), ',', -1) as artist_thrid_id,
       substring_index(substring_index(a.platform_artist_name, ',', b.AutoIncreID + 1), ',',
                       -1)                                                                  as platform_artist_name,
       import_timestamp,
       spider_time,
       chart_distinction,
       platform_name_id,
       platform_name
from raw_chart_data.raw_chart_detail a
         join raw_chart_data.incre_table b
              on b.AutoIncreID < (length(a.artist_third_id) - length(replace(a.artist_third_id, ',', '')) + 1)
limit 1000;

 

#添加自增id  #臨時字段設置字段類型
#CONVERT(@rowNO := @rowNO + 1,SIGNED) AS rowno

select CONVERT(@rowNO := @rowNO + 1,SIGNED) AS rowno,a.*
from (SELECT
       '抖音'              as platform,
       count(heat_name) as r,
       b.heat_name              as r_detail,
       b.`heat_rank`          as r_rank,
      max(date(b.spider_time))as date_spider,
       @rownum := @rownum +1 as id
from raw_trend_data.douyin_hot_spot as b
where spider_time > date_add(date(now()), interval -1 month) AND
  spider_time <= date_add(date(now()), interval 0 month)
group by b.heat_name order by r desc limit 20)a,
(select @rowNO :=0) b;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章