簡體   English   中英

如何從字符串中提取數字部分

[英]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為'' - >以刪除第二步格式化的效果。

**

(UPDATE)

**上述解決方案不適用於以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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM