Rumah > pangkalan data > Oracle > Laksanakan pertanyaan kabur menggunakan fungsi LIKE dan REGEX_LIKE Oracle

Laksanakan pertanyaan kabur menggunakan fungsi LIKE dan REGEX_LIKE Oracle

PHPz
Lepaskan: 2023-04-04 11:37:22
asal
2748 orang telah melayarinya

Oracle ialah sistem pengurusan pangkalan data hubungan peringkat perusahaan yang dibangunkan dan dijual oleh Oracle Corporation dari Amerika Syarikat. Ia digunakan secara meluas dalam pengurusan data dan boleh digunakan untuk menyimpan dan memanipulasi pelbagai jenis data. Dalam pangkalan data Oracle, keperluan biasa adalah untuk menanyakan data yang mengandungi kata kunci tertentu. Artikel ini akan memperkenalkan penggunaan fungsi LIKE dan REGEX_LIKE Oracle untuk melaksanakan pertanyaan kabur.

  1. Fungsi LIKE

Fungsi LIKE ialah salah satu fungsi pertanyaan kabur paling asas dalam Oracle. Apabila menggunakan fungsi LIKE untuk membuat pertanyaan, anda boleh menggunakan % untuk mewakili sebarang panjang aksara atau _ untuk mewakili mana-mana aksara tunggal. Contohnya, untuk mencari rekod yang mengandungi "epal", anda boleh menggunakan pernyataan SQL berikut:

PILIH * DARI nama_jadual DI MANA nama_lajur SEPERTI '%apple%';

Pernyataan SQL ini akan menanyakan table_name table Lajur column_name mengembalikan semua rekod yang mengandungi aksara "epal".

Untuk menanyakan rekod yang bermula atau berakhir dengan aksara tertentu, anda boleh menggunakan pernyataan SQL berikut:

-- Rekod pertanyaan bermula dengan "epal"
PILIH * DARI nama_jadual DI MANA nama_lajur SUKAI ' apple%';

-- Rekod pertanyaan yang berakhir dengan "epal"
PILIH * DARI nama_jadual DI MANA nama_lajur SEPERTI '%apple';

Pernyataan ini akan mengembalikan nama_lajur dalam nama_jadual jadual Lajur tempat teks bermula atau berakhir dengan "epal".

  1. Fungsi REGEX_LIKE

Fungsi REGEX_LIKE ialah salah satu fungsi ekspresi biasa Oracle Ia sangat serupa dengan fungsi LIKE, tetapi boleh menggunakan peraturan yang lebih kompleks untuk memadankan teks. Contohnya, untuk menanyakan perkataan yang mengandungi tiga huruf, "anjing", "kucing", "topi", dsb., anda boleh menggunakan pernyataan SQL berikut:

PILIH * DARI nama_jadual WHERE REGEX_LIKE(column_name, '[ [:alpha :]]{3}');

Pernyataan SQL ini akan menanyakan lajur column_name dalam jadual table_name dan mengembalikan semua perkataan tiga huruf.

Untuk menanyakan rekod yang mengandungi rentetan tertentu, anda boleh menggunakan operator bar menegak (|) dalam fungsi REGEX_LIKE. Contohnya, untuk membuat pertanyaan untuk rekod yang mengandungi kedua-dua "epal" dan "pisang", anda boleh menggunakan pernyataan SQL berikut:

PILIH * DARI nama_jadual DI MANA REGEX_LIKE(nama_kolom, 'epal|pisang');

Pernyataan SQL ini akan menanyakan lajur column_name dalam jadual table_name dan mengembalikan semua rekod yang mengandungi "epal" atau "pisang".

  1. Nota

Sama ada fungsi LIKE atau fungsi REGEX_LIKE, keseluruhan jadual atau indeks akan diimbas apabila melaksanakan pertanyaan, jadi dalam senario jadual besar atau pertanyaan yang kerap, Prestasi mungkin lebih perlahan.

Untuk jadual yang mengandungi lebih banyak data, anda boleh mempertimbangkan untuk menggunakan enjin carian teks penuh, seperti Oracle Text, untuk meningkatkan prestasi pertanyaan. Di samping itu, apabila menggunakan ungkapan biasa, anda perlu menulis padanan corak yang betul mengikut situasi sebenar untuk mengelakkan padanan berulang atau tidak perlu.

  1. Ringkasan

Dalam Oracle, fungsi LIKE dan REGEX_LIKE ialah dua kaedah pertanyaan kabur biasa. Gunakan kedua-dua fungsi ini untuk membuat pertanyaan dengan mudah rekod yang mengandungi aksara tertentu atau sepadan dengan peraturan tertentu. Dalam aplikasi praktikal, kita perlu memilih berdasarkan saiz jadual dan keperluan pertanyaan untuk meningkatkan prestasi pertanyaan.

Atas ialah kandungan terperinci Laksanakan pertanyaan kabur menggunakan fungsi LIKE dan REGEX_LIKE Oracle. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan