Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk menanyakan data yang mengandungi rentetan tertentu dalam mysql

Bagaimana untuk menanyakan data yang mengandungi rentetan tertentu dalam mysql

青灯夜游
青灯夜游asal
2022-01-05 16:23:4125068semak imbas

Dalam mysql, anda boleh menggunakan pernyataan "SELECT" dan kata kunci LIKE untuk menanyakan data yang mengandungi rentetan yang ditentukan Kata kunci LIKE digunakan terutamanya untuk mencari kandungan yang ditentukan dalam medan yang sepadan nama medan DARI nama jadual WHERE nama medan [TIDAK] SEPERTI 'rentetan';".

Bagaimana untuk menanyakan data yang mengandungi rentetan tertentu dalam mysql

Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.

Dalam mysql, anda boleh menggunakan pernyataan "PILIH" dan kata kunci LIKE untuk menanyakan data yang mengandungi rentetan tertentu.

Kata kunci LIKE digunakan terutamanya untuk mencari kandungan tertentu dalam medan yang sepadan. Format sintaks adalah seperti berikut:

[NOT] LIKE  '字符串'

Antaranya:

  • NOT: Parameter pilihan, syarat dipenuhi apabila kandungan dalam medan tidak sepadan dengan rentetan yang ditentukan.

  • String: Tentukan rentetan untuk dipadankan. "String" boleh menjadi rentetan lengkap atau ia boleh mengandungi aksara kad bebas.

Kata kunci LIKE menyokong tanda peratus "%" dan menggariskan aksara "_" kad bebas.

Kad bebas ialah pernyataan khas, digunakan terutamanya untuk pertanyaan kabur. Apabila anda tidak tahu watak sebenar atau anda terlalu malas untuk memasukkan nama penuh, anda boleh menggunakan kad bebas untuk menggantikan satu atau lebih aksara sebenar.

Contoh penggunaan kata kunci LIKE dalam pernyataan "SELECT"

dengan " %” pertanyaan kad bebas

“%” ialah aksara kad bebas yang paling biasa digunakan dalam MySQL Ia boleh mewakili rentetan dengan sebarang panjang dan panjang rentetan itu boleh menjadi 0. Sebagai contoh, a%b mewakili rentetan daripada sebarang panjang bermula dengan huruf a dan berakhir dengan huruf b. Rentetan ini boleh mewakili rentetan seperti ab, acb, accb, accrb, dll.

Contoh 1

Dalam jadual tb_students_info, cari semua nama pelajar yang bermula dengan huruf "T". Penyataan SQL dan keputusan berjalan adalah seperti berikut.

mysql> SELECT name FROM tb_students_info
    -> WHERE name LIKE 'T%';
+--------+
| name   |
+--------+
| Thomas |
| Tom    |
+--------+
2 rows in set (0.12 sec)

Seperti yang anda lihat, hanya nama pelajar yang bermula dengan huruf "T" dikembalikan dalam hasil pertanyaan.

Nota: Rentetan yang sepadan mesti disertakan dalam petikan tunggal atau petikan berganda.

NOT LIKE bermaksud syarat dipenuhi apabila rentetan tidak sepadan.

Contoh 2

Dalam jadual tb_students_info, cari semua nama pelajar yang tidak bermula dengan huruf "T". Penyataan SQL dan keputusan berjalan adalah seperti berikut.

mysql> SELECT NAME FROM tb_students_info
    -> WHERE NAME NOT LIKE 'T%';
+-------+
| NAME  |
+-------+
| Dany  |
| Green |
| Henry |
| Jane  |
| Jim   |
| John  |
| Lily  |
| Susan |
+-------+
8 rows in set (0.00 sec)

Seperti yang anda lihat, hasil pertanyaan mengembalikan nama pelajar yang tidak bermula dengan huruf "T".

Contoh 3

Dalam jadual tb_students_info, cari semua nama pelajar yang mengandungi huruf "e".

mysql> SELECT name FROM tb_students_info
    -> WHERE name LIKE '%e%';
+-------+
| name  |
+-------+
| Green |
| Henry |
| Jane  |
+-------+
3 rows in set (0.00 sec)

Seperti yang anda lihat, semua nama pelajar yang mengandungi huruf "e" dikembalikan dalam hasil pertanyaan.

Pertanyaan dengan "_" kad bebas

"_" hanya boleh mewakili satu aksara, watak Panjangnya tidak boleh 0. Contohnya, a_b boleh mewakili rentetan seperti acb, adb, aub, dsb.

Contoh 4

Dalam jadual tb_students_info, cari semua nama pelajar yang berakhir dengan huruf "y" dan dengan hanya 4 huruf di hadapan "y", pernyataan SQL dan Keputusan berjalan adalah seperti berikut.

mysql> SELECT name FROM tb_students_info
    -> WHERE name LIKE '____y';
+-------+
| name  |
+-------+
| Henry |
+-------+
1 row in set (0.00 sec)

LIKE sensitif huruf besar dan kecil

Secara lalai, kata kunci LIKE tidak sensitif huruf besar-besaran apabila memadankan aksara. Jika sensitiviti huruf besar diperlukan, anda boleh menambah kata kunci BINARI.

Contoh 5

Dalam jadual tb_students_info, cari semua nama pelajar bermula dengan huruf "t", penyataan SQL sensitif huruf besar dan kecil dan jalankan Hasilnya adalah seperti berikut.

mysql> SELECT name FROM tb_students_info WHERE name LIKE 't%';
+--------+
| name   |
+--------+
| Thomas |
| Tom    |
+--------+
2 rows in set (0.00 sec)
mysql> SELECT name FROM tb_students_info WHERE name LIKE BINARY 't%';
Empty set (0.01 sec)

Seperti yang anda boleh lihat daripada keputusan, selepas kepekaan huruf besar, rekod seperti "Tom" dan "Thomas" tidak akan dipadankan.

[Cadangan berkaitan: tutorial video mysql]

Atas ialah kandungan terperinci Bagaimana untuk menanyakan data yang mengandungi rentetan tertentu dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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