double variabelx;
double variabely;
double hasil;
hasil = variabelx + variabely;
Tidak masalah, pertama kita buat sebuah tabel dengan dua kolom, kolom pertama bertipe data varchar untuk menaruh nama variabel di sini tabelnya diberi nama variabel, dan kolom kedua bertipe data double untuk menyimpan nilainya di sini tabelnya diberi nama nilai.
Kemudian dimasukkan datanya sehingga hasilnya sebagai berikut:
:::variabel:::nilai:::
::: variabelx ::: 3 :::
::: variabely ::: 6 :::
::: hasil ::: 0 :::
Pertama, ambil nilai dari variabelx dan variabely. Berikut query untuk variabelx:
SELECT `nilai`
FROM `belajar`
WHERE `variabel` = 'variabelx'
Berikut hasil query untuk variabelx:
:::nilai:::
::: 3 :::
Berikut query untuk variabely:
SELECT `nilai`
FROM `belajar`
WHERE `variabel` = 'variabely'
Berikut hasil query untuk variabely:
:::nilai:::
::: 6 :::
Untuk update nilai hasil dengan nilai "1":
UPDATE `belajar`
SET `nilai` = '1'
WHERE `variabel` = 'hasil'
:::variabel:::nilai:::
::: hasil ::: 1 :::
Jadi update nilai hasil dengan nilai hasil penjumlahan akan berupa:
UPDATE `belajar`
SET `nilai` =
(SELECT `nilai`
FROM `belajar`
WHERE `variabel` = 'variabelx') +
(SELECT `nilai`
FROM `belajar`
WHERE `variabel` = 'variabely')
WHERE `variabel` = 'hasil'
Ternyata perintah di atas menghasilkan Error #1093. Hal itu disebabkan, dalam sebuah subquery pada perintah update, hanya boleh dilakukan pada tabel yang berbeda. Ganti perintah di atas dan tambahkan alias dengan perintah as pada masing-masing query. Karena menggunakan alias, maka query harus dipindahkan ke depan. Jadinya seperti berikut.
UPDATE `belajar` as tabel1,
(SELECT `nilai`
FROM `belajar`
WHERE `variabel` = 'variabelx')
as tabel2,
(SELECT `nilai`
FROM `belajar`
WHERE `variabel` = 'variabely')
as tabel3
SET `tabel1`.`nilai` = `tabel2`.`nilai` + `tabel3`.`nilai`
WHERE `variabel` = 'hasil'
Dengan hasil akhir:
:::variabel:::nilai:::
::: hasil ::: 9 :::
assalamualaikum
ReplyDeleteanak Inform-ITS ya?
mau tukeran link ga?
c0c
Bang yg jago programer web,.NET,query sql+mysql add YM saya dong
ReplyDeletearminto_nn