Pagi hari yang cerah untuk bekerja.
Pagi ini ada hal baru yang ditemui… ada sebuah pertanyaan besar, bagaimana cara membuat variable array di mysql??
saya punya sebuah query yang memerlukan sebuah array dalam kondisinya, sehingga memudahkan dalam melakukan coding (PHP).
contoh :
SELECT * FROM kura WHERE idKura IN (’1′,’2′,’3′);
solusinya bisa menggunakan :
SELECT * FROM kura WHERE idKura IN ‘%s’;
nah itu memang bisa jalan dengan mudah, kita tinggal ngetikin aja, atur di codingnya.
nah bagaimana klo querynya banyak :
SELECT * FROM kura
LEFT JOIN
(SELECT * FROM mati_wae
WHERE idMatiWae IN (’1′,’2′,’3′))
WHERE idKura IN(’1′,’2,’3′) AND idJebu IN (’1′,’2′)
nah klo kaya’ gitu apa yang mau dilakukan??
pertama, saya coba pake set variable
contoh :
SET @MATIWAE = “1,2,3″, @KURA = “1,2,3″, @JEBU = “1,2″;
lalu querynya diganti :
SELECT * FROM kura
LEFT JOIN
(SELECT * FROM mati_wae
WHERE idMatiWae IN (@MATIWAE))
WHERE idKura IN(@KURA) AND idJebu IN (@JEBU);
ternyata ada yang salah, set variable ternyata gak bisa bikin array, ini kutipannya :
variable can evaluate to an integer, real, string, or NULL value.
oww tarnyata bener-bener mati wae…
hmm, akhirnya mau gak mau solusi sementara ternyata dengan menggunakan variable ‘%s’. tapi bayangkan, klo ada variable yang sama diulang terus (misalnya variabel @JEBU) sebanyak 50 kali, jadi berapa kali yah ‘%s’ nya???
3 comments:
@TONI :
lah klo misalnya itu parameter inputan??? kan klo pake query wrapper itu kan jadi parameter inputan ???
CMIIW....
fadel wrote: "hmm, akhirnya mau gak mau solusi sementara ternyata dengan menggunakan variable ‘%s’. tapi bayangkan, klo ada variable yang sama diulang terus (misalnya variabel @JEBU) sebanyak 50 kali, jadi berapa kali yah ‘%s’ nya???"
ya pakenya %1$s, %2$s, %3$s, dst donk... inputnya kan jadi tetep sekali aja untuk si jebu.
Contoh:
$query_format = 'SELECT * FROM kura WHERE idKura IN %1$s AND idKura2 IN %1$s AND idNinja IN %1$s';
$mysql_array1 = "('1', '2', '3')";
$query = sprintf($query_format, $mysql_array1);
@NICKO :
hmm ternyata ada yah kaya' gitu...
wew keren...
makacih bang nicko :p
Post a Comment