php - 如何从字符串中提取数字部分

标签 php mysql

我有一个列,其中有一个字符串,如下所示

Data
black83736
white87
white893
pink82928
pink1
black27
...
...

我只想从该列中取出数字。

编辑

我更喜欢mysql解决方案

最佳答案

试试这个 mysql 解决方案: (更新)

SELECT replace(reverse(FORMAT(reverse(COLUMN_NAME), 0)), ',', '') as number from TABLE_NAME;

这适用于您的特定情况,您希望最后得到数字。

所以首先我们

反转,所以数字从头开始

format,所以去掉了字母,format用于格式化指定小数位的数字,这里我们指定为0。

再次反转 -> 得到原数

replace ',' to '' -> 去除第二步格式化的影响。

**

(更新)

** 上述解决方案不适用于以 0 结尾的数字(感谢 karolis 的告知)

因此

SELECT replace(replace(reverse(FORMAT(reverse(concat(numbers, '9099')), 0)), ',', ''), '9099', '') as number from test1;

这里我们在数字的末尾附加 '9099',然后在最后删除 9099。

9099 ?只是一个极不可能出现在您的列中的数字

关于php - 如何从字符串中提取数字部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7600974/

相关文章:

php - Codeigniter 很少不会加载数据库连接

php - 重新组合两个 SELECT

mysql - sql查询从2个字段搜索mysql全文

php - 添加另一个表时如何更改表中列的值?

php - Auth0 "The JWT string must contain two dots"

javascript - 我可以在没有访问 token 的情况下获取 Instagram 照片的所有评论吗?

导入后MySQL字段名有空格

javascript - 获取每个动态创建的输入元素的动态值并将它们分配给单独的变量

mysql - 在搜索 WordPress 中禁用默认正则表达式

php - 如何使用 brozot/Laravel-FCM 在推送通知上添加图像