Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengekstrak Digit Berturut-turut daripada Medan Teks MySQL dan Menggunakan Kriteria Tambahan?
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]'
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`
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
Untuk menggunakan fungsi ini, panggilnya seperti berikut:
SELECT `id`, REGEXP_EXTRACT(`originaltext`, '[0-9][0-9]') AS `digits` FROM `source`
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
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!