Membuat Pemisah Koma Menjadi Baris di MySQL

Beberapa hari lalu saya membuat data array untuk dimasukkan ke dalam database, dengan pemisah/separator dalam bentuk koma. Perhatikan kolom diskon dan info2

Membuat Pemisah Koma Menjadi Baris di MySQL

Sewaktu pemanggilan data tersebut saya tidak ingin terlalu banyak script perulangan di coding yang saya buat, akhirnya saya membuat single query MySQL. Scriptnya seperti ini :
$sql = " SELECT sum(nominal) FROM
(
SELECT replid, idbesarjtt, idjurnal,
  SUBSTRING_INDEX(SUBSTRING_INDEX(diskon, ',', n.n), ',', -1) diskon,
  tanggal, jumlah, keterangan, petugas, alasan, info1,
  SUBSTRING_INDEX(SUBSTRING_INDEX(info2, ',', n.n), ',', -1) nominal,
info3, ts, token, issync
FROM penerimaanjtt CROSS JOIN
(
SELECT a.N + b.N * 10 + 1 n
FROM
(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a
,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b
ORDER BY n
) n
WHERE n.n <= 1 + (LENGTH(diskon) - LENGTH(REPLACE(diskon, ',', '')))
)
penerimaanjtt, besarjtt, masterdiskonpenerimaan, jurnal
WHERE penerimaanjtt.idbesarjtt = besarjtt.replid
AND penerimaanjtt.idjurnal = jurnal.replid
AND penerimaanjtt.diskon = masterdiskonpenerimaan.replid AND jurnal.idtahunbuku = '$idtahunbuku'
AND FIND_IN_SET($idp,penerimaanjtt.diskon) <> 0
AND masterdiskonpenerimaan.departemen='$dept'
AND penerimaanjtt.tanggal BETWEEN '$tanggal1' AND '$tanggal2'
$sql_idpetugas";
Semoga bermanfaat.
Baca Juga
OVO KakTheo
DONASI VIA OVO Bantu berikan donasi jika artikelnya dirasa bermanfaat. Donasi akan digunakan untuk memperpanjang domain kaktheo.net.

Anda dapat menghubungi saya melalui form kontak kami yang telah disediakan atau dapat menghubungi saya melalui tautan ini. https://bit.ly/kontakkaktheo.

Artikel Terkait

Post a Comment

Subscribe Our Newsletter