Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melakukan Padanan Rentetan Separa dalam SQL Joins menggunakan LIKE?
Menyertai Jadual dengan LIKE dalam SQL
Apabila melakukan gabungan, anda mungkin menghadapi senario di mana keadaan padanan memerlukan padanan rentetan separa menggunakan LIKE pengendali. Ini melibatkan pemadanan lajur dalam satu jadual dengan lajur dalam jadual lain, dengan nilai yang sepadan boleh mempunyai aksara mendahului atau mengekorinya.
Untuk menangani perkara ini, anda boleh menggunakan beberapa pendekatan:
Menggunakan INSTR:
Kaedah ini menggunakan fungsi INSTR, yang menyemak sama ada subrentetan wujud dalam rentetan.
<code class="sql">SELECT * FROM TABLE a JOIN TABLE b ON INSTR(b.column, a.column) > 0</code>
Menggunakan LIKE:
Sebagai alternatif, anda boleh menggunakan operator LIKE dengan kad bebas % untuk memadankan sebarang bilangan aksara.
<code class="sql">SELECT * FROM TABLE a JOIN TABLE b ON b.column LIKE '%'+ a.column +'%'</code>
Menggunakan LIKE dengan CONCAT:
Satu lagi teknik melibatkan penggabungan % kad bebas dengan nilai lajur menggunakan fungsi CONCAT.
<code class="sql">SELECT * FROM TABLE a JOIN TABLE b ON b.column LIKE CONCAT('%', a.column ,'%')</code>
Padanan Tidak Peka Huruf:
Dalam semua kes, disyorkan untuk menukar lajur nilai kepada huruf besar sebelum perbandingan untuk memastikan padanan tidak peka huruf besar-kecil.
<code class="sql">SELECT * FROM (SELECT UPPER(a.column) 'ua' FROM TABLE a) a JOIN (SELECT UPPER(b.column) 'ub' FROM TABLE b) b ON INSTR(b.ub, a.ua) > 0</code>
Pilihan kaedah akan bergantung pada faktor seperti kecekapan dan keserasian pangkalan data. Rujuk keluaran rancangan EXPLAIN untuk menentukan pendekatan optimum. Ambil perhatian bahawa sintaks JOIN adalah bersamaan dengan klausa WHERE yang setara.
Atas ialah kandungan terperinci Bagaimana untuk Melakukan Padanan Rentetan Separa dalam SQL Joins menggunakan LIKE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!