Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengekstrak Digit Berturut-turut daripada Medan Teks MySQL dan Menggunakan Kriteria Tambahan?

Bagaimana untuk Mengekstrak Digit Berturut-turut daripada Medan Teks MySQL dan Menggunakan Kriteria Tambahan?

Barbara Streisand
Lepaskan: 2024-12-18 13:15:19
asal
623 orang telah melayarinya

How to Extract Consecutive Digits from a MySQL Text Field and Apply Additional Criteria?

Mengekstrak Digit Berturut-turut daripada Medan Teks MySQL

Dalam MySQL, pertanyaan berikut boleh mengesan medan teks yang mengandungi nombor 2 digit:

SELECT `id`, `originaltext` FROM `source` WHERE `originaltext` regexp '[0-9][0-9]'
Salin selepas log masuk

Walau bagaimanapun, untuk memanipulasi nombor ini sebagai medan yang berasingan, pemprosesan selanjutnya diperlukan. Berikut ialah dua penyelesaian yang berpotensi:

Menggunakan LIB_MYSQLUDF_PREG

LIB_MYSQLUDF_PREG ialah perpustakaan MySQL yang mempertingkatkan fungsi ekspresi biasa. Ia memperkenalkan fungsi seperti PREG_CAPTURE, yang boleh mengekstrak padanan daripada rentetan.

Untuk menggunakan pustaka ini, anda mesti memasangnya ke dalam pelayan MySQL anda. Setelah dipasang, anda boleh menggunakan pertanyaan berikut untuk mengekstrak digit berturut-turut:

SELECT `id`, PREG_CAPTURE('[0-9][0-9]', `originaltext`) AS `digits` FROM `source`
Salin selepas log masuk

Menggunakan Fungsi MySQL Tersuai

Sebagai alternatif, anda boleh menentukan fungsi MySQL tersuai yang melakukan pengekstrakan. Sebagai contoh, fungsi berikut akan mengekstrak jujukan padanan terpanjang pertama bagi digit:

CREATE FUNCTION REGEXP_EXTRACT(string TEXT, exp TEXT)
RETURNS TEXT
DETERMINISTIC
BEGIN
  DECLARE s INT DEFAULT 1;
  ...
  -- Implementation to extract the matching digits
  ...
END
Salin selepas log masuk

Untuk menggunakan fungsi ini, panggilnya seperti berikut:

SELECT `id`, REGEXP_EXTRACT(`originaltext`, '[0-9][0-9]') AS `digits` FROM `source`
Salin selepas log masuk

Kriteria Tambahan ( Nombor > 20)

Untuk menambah kriteria bahawa nombor harus lebih besar daripada 20, cuma tambahkan syarat ini pada klausa WHERE bagi mana-mana pertanyaan:

WHERE `digits` > 20
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Digit Berturut-turut daripada Medan Teks MySQL dan Menggunakan Kriteria Tambahan?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan