Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengekstrak dan Menapis Digit Berturut-turut Lebih Besar Daripada 20 daripada Medan Teks MySQL?

Bagaimanakah Saya Boleh Mengekstrak dan Menapis Digit Berturut-turut Lebih Besar Daripada 20 daripada Medan Teks MySQL?

DDD
DDDasal
2024-11-30 18:37:14445semak imbas

How Can I Extract and Filter Consecutive Digits Greater Than 20 from a MySQL Text Field?

Mengekstrak Dua Digit Berturut-turut dalam MySQL

Pertanyaan SQL yang disediakan berjaya mengenal pasti medan teks yang mengandungi dua digit berturut-turut. Walau bagaimanapun, untuk mengekstrak nombor ini sebagai medan yang berasingan, pertimbangkan untuk memasukkan fungsi tambahan ke dalam pertanyaan.

Pilihan 1: Menggunakan LIB_MYSQLUDF_PREG

Perpustakaan sumber terbuka ini menawarkan tetap yang dipertingkatkan. keupayaan ekspresi untuk MySQL. Ia menyediakan fungsi seperti PREG_CAPTURE, membolehkan pengekstrakan padanan daripada rentetan. Pasang dan konfigurasikan pustaka ini untuk mengakses fungsi ini.

Pilihan 2: Fungsi Ditakrifkan Pengguna untuk Pengekstrakan Regeks

Buat fungsi tersuai seperti REGEXP_EXTRACT untuk mengekstrak subrentetan padanan terpanjang berdasarkan ungkapan biasa yang disediakan. Fungsi ini boleh diperhalusi untuk mengendalikan keperluan khusus, seperti kemasukan pembatas '^' dan '$'.

Fungsi REGEXP_EXTRACT boleh diubah suai untuk memenuhi keperluan khusus:

CREATE FUNCTION REGEXP_EXTRACT(string TEXT, exp TEXT)
RETURNS TEXT
DETERMINISTIC
BEGIN
  ... (function code goes here)
END

Kriteria Tambahan: Nombor Lebih Besar Daripada 20

Sebaik sahaja anda mempunyai mengekstrak nombor sebagai medan, anda boleh menggunakan penapisan tambahan dalam pertanyaan anda:

SELECT `id`, `number_extracted`
FROM (
  SELECT `id`, `originaltext`
  FROM `source`
  WHERE `originaltext` REGEXP '[0-9][0-9]'
) AS subquery
WHERE `number_extracted` > 20

Pertanyaan lanjutan ini akan mengembalikan baris di mana nombor yang diekstrak melebihi 20. Dengan menggabungkan teknik ini, anda boleh memperhalusi pertanyaan MySQL anda kepada ekstrak dan manipulasi digit berturut-turut mengikut keperluan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekstrak dan Menapis Digit Berturut-turut Lebih Besar Daripada 20 daripada Medan Teks 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