Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menyoal PostgreSQL dengan Cekap untuk Nilai Bermula dengan '00' dan Aksara Ketiga Bukan Sifar?

Bagaimanakah Saya Boleh Menyoal PostgreSQL dengan Cekap untuk Nilai Bermula dengan '00' dan Aksara Ketiga Bukan Sifar?

DDD
DDDasal
2024-12-26 17:58:09463semak imbas

How Can I Efficiently Query PostgreSQL for Values Starting with

Ungkapan Biasa dalam Klausa SEPERTI PostgreSQL

Pertanyaan ini bertujuan untuk memadankan nilai bermula dengan '00' dan mempunyai aksara ketiga berbeza daripada '0 ', seperti dalam '0090D0DF143A'. Walau bagaimanapun, pertanyaan berikut gagal dipadankan:

SELECT * FROM table WHERE value LIKE '00[1-9]%'

Untuk menangani isu ini, pertimbangkan untuk menggunakan operator ungkapan biasa '~' bersama-sama dengan ungkapan kurungan di luar klausa LIKE. Walau bagaimanapun, untuk prestasi optimum, gabungan klausa SUKA dan TIDAK SUKA disyorkan:

SELECT *
FROM   tbl
WHERE  value LIKE '00%'
AND    value NOT LIKE '000%'

Klausa SUKA dengan cekap mengecilkan padanan berpotensi dengan ungkapan berlabuh kiri, manakala klausa NOT LIKE memperhalusi lagi keputusan. Postgres boleh menggunakan indeks untuk ungkapan sedemikian, menghasilkan pelaksanaan pertanyaan yang lebih pantas.

Selain itu, adalah penting untuk menambat corak pada permulaan rentetan menggunakan '^' dalam ungkapan biasa dan menggunakan ungkapan kurungan ' 1' untuk memadankan mana-mana watak selain daripada '0'.


    Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyoal PostgreSQL dengan Cekap untuk Nilai Bermula dengan '00' dan Aksara Ketiga Bukan Sifar?. 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