Kaedah: 1. Gunakan "nama jadual di mana medan seperti '% string%'" untuk membuat pertanyaan; medan seperti '% string%'" untuk pertanyaan cari(rentetan,medan)" pertanyaan.
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi mysql8.0.22, komputer Dell G3.
Ringkaskan 3 kaedah untuk menentukan sama ada rentetan tertentu mengandungi rentetan tertentu dalam MySQL.
Mari kita ambil senario mudah dahulu, seperti menanyakan jadual pengguna untuk rekod dengan yanggb dalam hobi.
Kaedah 1: Gunakan aksara kad bebas %.
Kad liar juga merupakan padanan kabur, yang boleh dibahagikan kepada pertanyaan kabur terkemuka, pertanyaan kabur mengekor dan jumlah pertanyaan padanan utama Ia sesuai untuk senario pertanyaan sama ada rentetan tertentu mengandungi pertanyaan kabur yang lain . Senario penggunaan
select * from user where hobby like '%yanggb%';
adalah terhad untuk mencari rekod yanggb dalam hobi (hobi ialah berbilang nilai yang dipisahkan dengan koma), tetapi bukan sebaliknya.
Kaedah 2: Gunakan fungsi rentetan find_in_set() yang disediakan oleh MySQL.
MySQL menyediakan fungsi rentetan find_in_set(str1, str2), yang digunakan untuk mengembalikan indeks kedudukan str1 dalam str2 Jika ia ditemui, ia akan mengembalikan benar (1), jika tidak, ia akan kembali false ( 0), dengan str2 mesti dipisahkan dengan koma separuh lebar [,]. Apabila rentetan padanan
select * from user where find_in_set('yanggb', hobby);
digunakan sebagai parameter pertama, senario yang berkenaan adalah untuk mencari rekod yanggb dalam hobi (hobi ialah berbilang nilai yang dipisahkan dengan koma). Apabila rentetan padanan
select * from user where find_in_set(hobby, 'yanggb1,yanggb2,yanggb3');
digunakan sebagai parameter kedua, senario yang berkenaan adalah untuk mencari rekod dengan salah satu daripada yanggb1, yanggb2 dan yanggb3 dalam hobi (hobi ialah nilai tunggal).
Kaedah 3: Gunakan fungsi rentetan locate() fungsi yang disediakan oleh MySQL.
MySQL juga menyediakan fungsi rentetan locate(substr, str), yang digunakan untuk mengembalikan indeks kedudukan substr dalam str ia kembali 0 .
select * from user where locate('yanggb', hobby) > 0;
Senario yang berkenaan adalah serupa dengan fungsi find_in_set() Satu-satunya perbezaan antara kedua-dua fungsi ialah nilai pulangan.
Pembelajaran yang disyorkan: tutorial video mysql
Atas ialah kandungan terperinci Bagaimana untuk menanyakan rentetan yang terkandung dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!