Mengatasi Kekaburan dalam 'user_id' MySQL WHERE Klausa
Apabila bekerja dengan berbilang jadual yang berkongsi nama lajur, MySQL boleh menghadapi kekaburan apabila menggunakan lajur itu dalam klausa WHERE. Ini jelas dalam mesej ralat 'user_id' di mana klausa adalah samar-samar.
Pertimbangkan contoh pertanyaan:
SELECT user.*, user_info.* FROM user INNER JOIN user_info ON user.user_id = user_info.user_id WHERE user_id=1
Dalam pertanyaan ini, kedua-dua jadual 'pengguna' dan 'info_pengguna' mempunyai lajur 'user_id'. Walau bagaimanapun, MySQL tidak dapat menentukan lajur 'user_id' mana yang hendak digunakan dalam klausa WHERE.
Menyelesaikan Kekaburan
Untuk menyelesaikan kekaburan, kita mesti menentukan 'user_id' yang mana lajur untuk digunakan. Ini boleh dicapai dengan menambah nama jadual sebagai awalan pada nama lajur, seperti yang ditunjukkan di bawah:
... WHERE user.user_id=1
Dengan menyatakan 'user.user_id', kami mengisytiharkan secara eksplisit bahawa kami mahu menggunakan 'user_id' lajur daripada jadual 'pengguna' dalam klausa WHERE.
Penjelasan ini menghapuskan kekaburan dan membenarkan MySQL melaksanakan pertanyaan tanpa menemui 'user_id' di mana klausa adalah ralat samar-samar. Ingat untuk sentiasa menyatakan awalan jadual apabila merujuk nama lajur samar-samar dalam klausa WHERE untuk mengelakkan perkara ini dan isu yang serupa pada masa hadapan.
Atas ialah kandungan terperinci Bagaimana untuk Menentukan Lajur Ambiguous \'user_id\' dalam Klausa MySQL WHERE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!