Bagaimanakah anda boleh melakukan operasi JOIN di mana keadaan padanan melibatkan lajur daripada satu jadual yang mengandungi subrentetan lajur daripada jadual lain?

Susan Sarandon
Lepaskan: 2024-10-26 18:29:29
asal
382 orang telah melayarinya

How can you perform a JOIN operation where the matching condition involves a column from one table containing a substring of a column from another table?

Menggunakan LIKE dalam SQL JOIN

Dalam SQL, melakukan operasi JOIN selalunya memerlukan penetapan keadaan padanan antara lajur daripada jadual yang berbeza. Satu syarat sedemikian melibatkan pemadanan lajur daripada jadual A dengan lajur daripada jadual B, di mana kandungan lajur B boleh berbeza-beza sebelum atau selepas kandungan lajur A. Senario ini memerlukan penggunaan operator LIKE.

Untuk mencapai ini, anda mempunyai beberapa pilihan:

  1. Menggunakan INSTR:
<code class="sql">SELECT *
FROM TABLE a
JOIN TABLE b ON INSTR(b.column, a.column) > 0</code>
Salin selepas log masuk

Di sini, INSTR() mengembalikan kedudukan yang pertama kemunculan nilai lajur A dalam lajur B. Baris yang sepadan ialah baris yang kedudukannya lebih besar daripada 0.

  1. Menggunakan LIKE Secara Terus:
<code class="sql">SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE '%'+ a.column +'%'</code>
Salin selepas log masuk

Kaedah ini menambahkan kad bebas pada kedua-dua belah nilai lajur A, membenarkan mana-mana aksara mendahului atau mengikutinya dalam lajur B.

  1. Menggunakan LIKE dengan CONCAT:
<code class="sql">SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE CONCAT('%', a.column ,'%')</code>
Salin selepas log masuk

Sama seperti pendekatan sebelumnya, kaedah ini membina rentetan dengan kad bebas pada kedua-dua sisi nilai lajur A menggunakan fungsi CONCAT().

Untuk memastikan padanan tidak sensitif huruf besar-besaran, ia adalah disyorkan untuk menukar kedua-dua lajur kepada huruf besar sebelum membandingkannya. Ini boleh dicapai dengan menggunakan fungsi UPPER().

Perhatikan bahawa kaedah yang paling cekap akan bergantung pada pangkalan data dan data khusus yang terlibat, seperti yang ditentukan dengan memeriksa output rancangan EXPLAIN.

Atas ialah kandungan terperinci Bagaimanakah anda boleh melakukan operasi JOIN di mana keadaan padanan melibatkan lajur daripada satu jadual yang mengandungi subrentetan lajur daripada jadual lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!