[英]how to extract the digit part from the string
我有一個列中有一個字符串,如下所示
Data
black83736
white87
white893
pink82928
pink1
black27
...
...
我想從該列中獲取數字。
編輯
我更喜歡mysql解決方案
試試這個mysql解決方案:(更新)
SELECT replace(reverse(FORMAT(reverse(COLUMN_NAME), 0)), ',', '') as number from TABLE_NAME;
這是針對您的特定情況,您最終需要數字。
首先我們
Reverse
,所以數字開始
format
,所以刪除字母,格式用於格式化具有指定小數位的數字,這里我們將其指定為0。
再次reverse
- >獲取原始數字
replace
',' replace
為'' - >以刪除第二步格式化的效果。
**
**上述解決方案不適用於以0結尾的數字(感謝karolis告訴)
所以為此
SELECT replace(replace(reverse(FORMAT(reverse(concat(numbers, '9099')), 0)), ',', ''), '9099', '') as number from test1;
在這里,我們將“9099”附加到數字的末尾,然后最后刪除9099。
9099? 只是一個很可能在您的列中出現的數字
$result = preg_replace('~[^0-9]*~', '', $string);
是的,它非常不優雅,但目前是我所知道的唯一可靠的MySQL解決方案:
select replace(column_name,
replace(replace(replace(replace(replace(
replace(replace(replace(replace(replace(
column_name,
0, ''), 1, ''), 2, ''), 3, ''), 4, ''),
5, ''), 6, ''), 7, ''), 8, ''), 9, ''), '')
filter_var('stri99ng', FILTER_SANITIZE_NUMBER_INT);
我更喜歡mysql解決方案
好吧,你不應該除非你有強大的處理器或這個查詢不會返回很多結果。 MySQL通常不適合任何字符串操作操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.