Menyertai Data daripada Berbilang Jadual Menggunakan Nilai Terhad dalam MySQL
Soalan:
Bagaimana boleh Saya cekap mendapatkan data daripada berbilang jadual yang mempunyai nilai dipisahkan koma bertitik dalam salah satu lajur, tanpa menggunakan bahasa luar atau memperkenalkan jadual pemautan?
Jawapan:
Kepada menangani isu ini, kita boleh menggunakan teknik yang menukar nilai yang dipisahkan koma bertitik ke dalam baris individu. Ini membolehkan kami menyertai jadual dan mendapatkan hasil yang diingini.
Penyelesaian:
Penyelesaian yang disediakan menggunakan dua fungsi MySQL tersuai:
Fungsi ini digabungkan dengan gabungan antara jadual pengguna dan sumber, menggunakan jadual integerseries untuk mengulang melalui koma bertitik- nilai dipisahkan:
<code class="sql">SELECT user_resource.user, resource.data FROM user_resource JOIN integerseries AS isequence ON isequence.id <= COUNT_IN_SET(user_resource.resources, ';') /* normalize */ JOIN resource ON resource.id = VALUE_IN_SET(user_resource.resources, ';', isequence.id) ORDER BY user_resource.user, resource.data</code>
Pertanyaan ini menghasilkan jadual di mana setiap sumber pengguna diwakili sebagai baris individu, membolehkan kami bergabung dengan jadual sumber dengan mudah untuk mendapatkan data yang sepadan.
Maklumat Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Menyertai Data daripada Berbilang Jadual dengan Nilai Terhad dalam MySQL Tanpa Memautkan Jadual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!