Menjumlahkan Lajur Dipisahkan Koma dalam MySQL 4 (Bukan 5)
Dalam MySQL 4, melakukan operasi pada lajur dipisahkan koma tanpa menggunakan alat luaran boleh mencabar kerana kekurangan keupayaan manipulasi rentetan lanjutan. Artikel ini meneroka pendekatan alternatif untuk menjumlahkan lajur sedemikian dalam MySQL 4.
Manipulasi Rentetan Bukan Trivial
Malangnya, MySQL 4 tidak menyediakan sokongan untuk prosedur tersimpan, yang menawarkan fungsi manipulasi rentetan yang lebih canggih. Ini menyukarkan untuk melakukan pengiraan kompleks pada nilai dipisahkan koma secara langsung menggunakan pernyataan SQL.
Pendekatan Alternatif
Satu pendekatan yang mungkin adalah untuk meningkatkan kepada MySQL 5 atau lebih baru, yang merangkumi sokongan untuk prosedur tersimpan dan membolehkan penciptaan fungsi tersuai untuk mengendalikan operasi tersebut. Berikut ialah satu fungsi yang boleh digunakan dalam MySQL 5.0 untuk menjumlahkan nilai yang dipisahkan koma:
<code class="sql">DELIMITER // CREATE FUNCTION SUM_OF_LIST(s TEXT) RETURNS DOUBLE DETERMINISTIC NO SQL BEGIN DECLARE res DOUBLE DEFAULT 0; WHILE INSTR(s, ",") > 0 DO SET res = res + SUBSTRING_INDEX(s, ",", 1); SET s = MID(s, INSTR(s, ",") + 1); END WHILE; RETURN res + s; END // DELIMITER ;</code>
Fungsi ini boleh digunakan seperti berikut:
<code class="sql">mysql> SELECT SUM_OF_LIST("5,2.1") AS Result; +--------+ | Result | +--------+ | 7.1 | +--------+</code>
Limitation
Walaupun fungsi ini menyediakan penyelesaian untuk menjumlahkan nilai yang dipisahkan koma dalam MySQL 5.0 , adalah penting untuk ambil perhatian bahawa ia mungkin tidak mengendalikan semua senario dengan anggun. Sebagai contoh, ia merawat koma di belakang dan nilai kosong secara berbeza berbanding dengan persekitaran lain. Oleh itu, pengesahan dan ujian yang teliti disyorkan apabila menggunakan pendekatan ini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjumlahkan Nilai Dipisahkan Koma dalam MySQL 4 Tanpa Menggunakan Prosedur Tersimpan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!