建立函式(直接執行sql):
delimiter $$
drop function if exists `getnum` $$
-- text要根據自己的字串大小來定
create function `getnum` (varstring text) returns text charset utf8mb4
begin
declare v_length int default 0
; declare v_tmp varchar (
50) default ''
; set v_length =
char_length
(varstring)
; while
v_length >
0 do if (
(ascii
(mid
(varstring, v_length,1)
)>
47 and ascii
(mid
(varstring, v_length,1)
)<58)
-- 判斷可以=
46就是包含了.,小數
orascii
(mid
(varstring, v_length,1)
)=46)
then set v_tmp =
concat
(v_tmp,
mid(varstring, v_length,1)
);end if ;
set v_length = v_length -1;
end while ;
return reverse
(v_tmp)
;end $$
delimiter ;
select getnum
('哈哈4554嗯嗯'
);
這種方式始終會有弊端:
比如:下邊這種還是提取不了的。
1048.23(其中占用水田7等、8等分別是63.77畝和918.10畝,水澆地7等、8等分別是29.71畝和36.60畝
提取 字串中 數字
include include include void main l if find break 有數字則退出迴圈 else printf 沒有數字 請重新輸入 n gets c 沒有則重新出入 l strlen c l strlen c printf 字串長度為 d n l for i 0 i ...
提取字串中的單詞
函式原型 char strtok char string,char const delimiter 引數說明 string指向需要被分割的字串,delimiter指向分割字串 string使用的限定符。函式返回乙個分割出來的子字串指標。注意每次執行該函式的時候只會返回乙個分割出來的字串,如果需要返回...
提取字串substring
substring 方法用於提取字串中介於兩個指定下標之間的字元。語法 stringobject.substring startpos,stoppos 引數說明 注意 1.返回的內容是從 start開始 包含start位置的字元 到 stop 1 處的所有字元,其長度為 stop 減start。2....