Rumah >pangkalan data >tutorial mysql >Bagaimanakah saya boleh mengekstrak nombor daripada rentetan dalam MySQL?
Kaedah pengekstrakan nombor rentetan MySQL
MySQL menyediakan berbilang kaedah untuk mengekstrak nombor daripada rentetan. Jika rentetan bermula dengan nombor, anda boleh menggunakan fungsi CAST()
atau penukaran jenis tersirat (cth., '1234abc' 0) untuk mengekstrak bahagian angka.
Fungsi tersuai untuk memproses sebarang rentetan
Untuk rentetan yang mengandungi aksara bukan angka atau nombor bukan pada permulaan rentetan, anda boleh mencipta fungsi tersuai, seperti ExtractNumber
:
<code class="language-sql">CREATE FUNCTION `ExtractNumber`(in_string VARCHAR(50)) RETURNS INT NO SQL BEGIN DECLARE inti INT DEFAULT 0; DECLARE sChar CHAR(1); DECLARE finNumber VARCHAR(50) DEFAULT ""; DECLARE strLength INT; SET strLength = LENGTH(in_string); WHILE(inti < strLength) DO SET sChar = SUBSTRING(in_string, inti + 1, 1); IF sChar BETWEEN '0' AND '9' THEN SET finNumber = CONCAT(finNumber, sChar); END IF; SET inti = inti + 1; END WHILE; RETURN CAST(finNumber AS UNSIGNED); END</code>
Penggunaan fungsi tersuai ExtractNumber
Selepas mentakrifkan fungsi ExtractNumber
, ia boleh digunakan dalam pertanyaan:
<code class="language-sql">SELECT ExtractNumber("abc1234def") AS number; -- 1234</code>
Nombor boleh diekstrak daripada rentetan MySQL dalam pelbagai format dengan menggunakan fungsi ini atau kaedah CAST()
.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengekstrak nombor daripada rentetan dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!