2011年6月21日 星期二

MySQL一個聰明的sql,當Record沒有的時候才增加

今天幫Project做maintain,
發現同事寫的一行SQL代碼,我不太明白,
細問之下原來功用十分奇妙!!
學到新野,我梗係即時記下來,
就是insert時,當Record沒有的時候才insert一個新的,
大大簡化了一個Coding上的一大段檢測代碼。
代碼如下:

// insert command
insert into myfavorite (songname,songid,singername,singertype)
// select command用作制造一個visual record
select 'MAKE IT REAL','G023203','(null)',0
// where用作檢測not exists的結果
where not exists
(
    // select相同的table,record存在就return 1,不存在為NULL
    select 1 from myfavorite
    where songid = 'G023203'
);

沒有留言:

張貼留言