MySQL競合解決、オープンウィンドウ、その他の関数の応用
2637 ワード
文書ディレクトリ 1. 衝突解決 2. MySQL開窓関数の使用 3. coalesce()関数 4. cast() 5. substring_index() 6. date_sub()日付から指定された間隔 を減算
1.競合解決
1.1競合を挿入すると、指定した値が更新されます.
1.2挿入の競合が発生した場合、エラーが発生した行は無視されます(挿入するデータを捨て、元のデータを保持します)
2.MySQL開窓関数の使用
注意:MySQL開窓関数は8+以降のバージョンにあります.
3.coalesce()関数
フィールド値のマージ
4. cast()
元のフィールド値を指定したタイプに変換
5. substring_index()
指定された記号に基づいてフィールドを分割し、2番目の分割記号の前の値をとる注意:右から左に値をとると、-1から左へ値を取り、1から
6. date_sub()日付から指定した間隔を減算
Curdate()現在の日付now()現在の時刻の取得
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;