Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengemas kini ID Soalan NULL dalam Jadual Pangkalan Data Menggunakan Jadual Berkaitan?
Kemas Kini Jadual Pangkalan Data: Menjajarkan Lajur dengan Nilai Dirujuk
Soalan anda berkaitan dengan mengemas kini jadual pangkalan data di mana lajur QuestionID mengandungi nilai nol. Anda berusaha untuk menetapkan nilai nol ini sama dengan nilai ID Soalan yang sepadan dalam jadual berkaitan, 'Jawapan', dirujuk oleh lajur AnswerID.
Untuk mencapai ini, anda boleh memanfaatkan gabungan dalaman. Pertanyaan berikut menunjukkan cara:
UPDATE QuestionTrackings q INNER JOIN QuestionAnswers a ON q.AnswerID = a.AnswerID SET q.QuestionID = a.QuestionID WHERE q.QuestionID IS NULL;
Operasi INNER JOIN mewujudkan sambungan antara baris dalam jadual QuestionTrackings dan QuestionAnswers berdasarkan nilai AnswerID yang sepadan. Ini membolehkan kami mengakses nilai QuestionID daripada jadual QuestionAnswers untuk setiap baris dalam jadual QuestionTrackings.
Anda boleh menambah syarat tambahan pada klausa WHERE untuk mengecilkan lagi baris yang akan dikemas kini. Sebagai contoh, jika anda hanya ingin mengemas kini baris dengan QuestionID adalah batal dan AnswerID kurang daripada 500:
UPDATE QuestionTrackings q INNER JOIN QuestionAnswers a ON q.AnswerID = a.AnswerID SET q.QuestionID = a.QuestionID WHERE q.QuestionID IS NULL AND q.AnswerID < 500;
Adalah disyorkan untuk pratonton baris yang akan dikemas kini menggunakan pertanyaan pilih sebelum melaksanakan kemas kini untuk memastikan ketepatan :
SELECT * FROM QuestionTrackings q INNER JOIN QuestionAnswers a ON q.AnswerID = a.AnswerID WHERE q.QuestionID IS NULL;
Ini akan membantu anda mengesahkan bahawa setiap AnswerID hanya mempunyai satu ID Soalan yang berkaitan dan mengelakkan kemungkinan ralat semasa kemas kini proses.
Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini ID Soalan NULL dalam Jadual Pangkalan Data Menggunakan Jadual Berkaitan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!