Menetapkan pembolehubah yang ditentukan pengguna berdasarkan hasil pertanyaan meningkatkan keupayaan manipulasi pangkalan data. Artikel ini meneroka kaedah untuk mencapai ini dalam MySQL tanpa menggunakan pertanyaan bersarang.
Bertentangan dengan kepercayaan popular, tugasan pembolehubah pengguna boleh disepadukan terus ke dalam pertanyaan. Pengendali tugasan untuk pernyataan SET ialah sama ada = atau :=. Walau bagaimanapun, := mesti digunakan dalam penyataan lain, kerana = dikhaskan untuk perbandingan.
Untuk menggambarkan teknik ini, mari kita anggap USER dan GROUP adalah unik. Urutan pertanyaan berikut mempamerkan fungsi:
SET @user := 123456; SELECT @group := `group` FROM USER WHERE user = @user; SELECT * FROM USER WHERE `group` = @group;
Menggunakan jadual sampel dengan data berikut:
CREATE TABLE user (`user` int, `group` int); INSERT INTO user VALUES (123456, 5); INSERT INTO user VALUES (111111, 5);
Pertanyaan menghasilkan yang berikut hasil:
+--------+-------+ | user | group | +--------+-------+ | 123456 | 5 | | 111111 | 5 | +--------+-------+
Sebagai alternatif, sintaks berikut boleh digunakan:
SET @user := 123456; SELECT `group` FROM user LIMIT 1 INTO @group; SELECT * FROM user WHERE `group` = @group;
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menetapkan Pembolehubah Pengguna daripada Keputusan Pertanyaan dalam MySQL tanpa Menggunakan Pertanyaan Bersarang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!