Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengeluarkan Digit Berturut-turut daripada Medan Teks MySQL?
Mengekstrak Digit Berturut-turut daripada Medan Teks MySQL
Untuk mengekstrak digit berturut-turut secara berkesan daripada medan teks dalam MySQL, terdapat beberapa pendekatan:
Menggunakan Biasa Ungkapan:
Sokongan ungkapan biasa terbina dalam MySQL boleh digunakan untuk mengesan kejadian dua digit berturut-turut dalam medan teks. Walau bagaimanapun, kaedah ini tidak mengeluarkan digit sebagai medan yang berasingan.
Fungsi Tersuai dengan PCRE:
Untuk keupayaan ekspresi biasa lanjutan, pertimbangkan untuk melaksanakan LIB_MYSQLUDF_PREG. Pustaka sumber terbuka ini menawarkan fungsi seperti PREG_CAPTURE, PREG_POSITION, PREG_REPLACE dan PREG_RLIKE, yang membolehkan mengekstrak padanan tertentu daripada rentetan.
Fungsi Tersuai:
Pendekatan alternatif adalah untuk mencipta fungsi tersuai seperti REGEXP_EXTRACT untuk mengekstrak subrentetan terpanjang yang sepadan dengan corak ekspresi biasa yang dikehendaki. Fungsi ini membolehkan anda menentukan pelarasan kedudukan mula dan tamat untuk menangkap digit tanpa memasukkan aksara tambahan.
Kriteria Tambahan:
Jika anda perlu menapis digit yang diekstrak dengan nilai tertentu, seperti lebih daripada 20, anda boleh menggunakan kriteria tambahan dalam pertanyaan MySQL anda selepas memperoleh digit sebagai medan.
Contoh:
Pertimbangkan pelaksanaan fungsi tersuai berikut:
CREATE FUNCTION REGEXP_EXTRACT(string TEXT, exp TEXT) RETURNS TEXT DETERMINISTIC BEGIN ... ... END
Anda kemudian boleh menggunakan fungsi ini dalam pertanyaan anda untuk mengekstrak dua digit berturut-turut daripada medan teks asal dan tapis mengikut nilai:
SELECT `id`, REGEXP_EXTRACT(`originaltext`, '[0-9][0-9]') AS `digits` FROM `source` WHERE `digits` > 20;
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Digit Berturut-turut daripada Medan Teks MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!