Update with subselect – MySQL

Ada satu kes di mana kita perlu update field ‘pic’ kepada nama fail gambar mungkin staffid.jpg. Arrgh takkan nak update satu persatu. Anyway ada satu cara yang boleh digunakan.

Langkah2nya;
1. Create lagi satu table sama seperti table asal beserta data
2. Cuba SQL di bawah.

MySQL

UPDATE tbl1 SET tbl1.pic = 
(select CONCAT(tbl1_temp.staffID,'.jpg') FROM tbl1_temp 
where tbl1.staffID = tbl1_temp.staffID)
WHERE tbl1.staffID = tbl1.staffID 

Field pic pada table tbl1 akan dikemaskini dengan staffid.jpg (dengan menggunakan fungsi concat) yang diperolehi daripada table tbl1_temp. OK, Sekiranya anda menggunakan pangkalan data lain, SQL di bawah boleh digunakan.

Oracle

UPDATE tbl1 SET tbl1.pic = 
(select tbl1_temp.staffID || '.jpg' FROM tbl1_temp 
where tbl1.staffID = tbl1_temp.staffID)
WHERE tbl1.staffID = tbl1.staffID 

Sql Server

UPDATE tbl1 SET tbl1.pic = 
(select tbl1_temp.staffID + '.jpg') FROM tbl1_temp 
where tbl1.staffID = tbl1_temp.staffID)
WHERE tbl1.staffID = tbl1.staffID 

Mungkin ada cara-cara lain… Harap kawan2 boleh kongsi…

Selamat mencuba

rais.my

4 thoughts on “Update with subselect – MySQL

Leave a Reply

Your email address will not be published. Required fields are marked *

*