MySQL競合解決、オープンウィンドウ、その他の関数の応用

2637 ワード

文書ディレクトリ
  • 1. 衝突解決
  • 2. MySQL開窓関数の使用
  • 3. coalesce()関数
  • 4. cast()
  • 5. substring_index()
  • 6. date_sub()日付から指定された間隔
  • を減算
    1.競合解決
    1.1競合を挿入すると、指定した値が更新されます.
    insert into table.name()
    on duplicate key update
    	    =    
    	...
    ;
    

    1.2挿入の競合が発生した場合、エラーが発生した行は無視されます(挿入するデータを捨て、元のデータを保持します)
    insert ignore into table.name()
    

    2.MySQL開窓関数の使用
    注意:MySQL開窓関数は8+以降のバージョンにあります.
    select t.*,
           row_number() over (partition by t.  1, t.  2 order by t.  3 desc, t.  4 desc) as rows_desc
     from table.name;

    3.coalesce()関数
    フィールド値のマージ
    select
    coalesce(   , 0) as coalesce_val
    from table.name;

    4. cast()
    元のフィールド値を指定したタイプに変換
    select
    cast(    as int)
    from table.name;

    5. substring_index()
    指定された記号に基づいてフィールドを分割し、2番目の分割記号の前の値をとる注意:右から左に値をとると、-1から左へ値を取り、1から
    select 
    substring_index(   , ',', 2)
    from table.name

    6. date_sub()日付から指定した間隔を減算
    Curdate()現在の日付now()現在の時刻の取得
    select date_sub(curdate(), interval 1 day);
    select curdate() - interval 1 day;
    
    select curdate() + interval 1 day;