Melaksanakan Rentetan dalam MySQL: Adakah Mungkin?
Dalam MySQL, menghantar pembolehubah rentetan sebagai pertanyaan sering menimbulkan cabaran, terutamanya apabila mencuba untuk melaksanakannya secara dinamik. Tidak seperti perintah EXEC Microsoft SQL Server, MySQL tidak mempunyai ciri yang sama. Walau bagaimanapun, wujud pendekatan alternatif untuk mencapai fungsi ini.
Untuk melaksanakan rentetan dalam MySQL secara dinamik, anda boleh menggunakan langkah berikut:
Berikut ialah contoh untuk menggambarkan perkara ini konsep:
SET @queryString = ( SELECT CONCAT('INSERT INTO user_group (`group_id`,`user_id`) VALUES ', www.vals) as res FROM ( SELECT GROUP_CONCAT(qwe.asd SEPARATOR ',') as vals FROM ( SELECT CONCAT('(59,', user_id, ')') as asd FROM access WHERE residency = 9 ) as qwe ) as www ); PREPARE stmt FROM @queryString; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @asd = NULL;
Dalam contoh ini, pembolehubah @queryString disediakan dengan menggabungkan bahagian pertanyaan individu. Penyataan stmt yang disediakan kemudiannya dilaksanakan, secara dinamik melaksanakan operasi INSERT. Selepas pelaksanaan, penyataan itu diagihkan dan pembolehubah @asd ditetapkan kepada NULL untuk mengelakkan sebarang kesan berlarutan daripada pertanyaan dinamik.
Dengan menggunakan teknik ini, anda boleh melaksanakan rentetan dalam MySQL dengan berkesan, meniru tingkah laku fungsi eval() dalam JavaScript dan membuka kemungkinan untuk pelaksanaan pertanyaan yang lebih dinamik dan fleksibel.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Pertanyaan SQL Dinamik dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!