mysql中取字符串中的数字的语句

yizhihongxing

要从mysql的字符串中提取数字,可以使用正则表达式和内置函数来完成。

下面介绍两种方法。

方法一:正则表达式

mysql提供了REGEXP_SUBSTR()函数来实现正则表达式的匹配和提取。

语法如下:

REGEXP_SUBSTR(字符串, 正则表达式)

其中,正则表达式用来匹配字符串中想要的部分。这里使用正则表达式[0-9]+,表示匹配连续的数字。

示例一:

假设有以下的数字字符串:

$str = 'abc123def456ghi';

现在需要从字符串中提取数字部分。

代码如下:

SELECT REGEXP_SUBSTR('abc123def456ghi', '[0-9]+'); 

输出结果为:

123

示例二:

再假设有以下的字符串:

$str = '2020年10月1日';

现在需要从字符串中提取年份。

代码如下:

SELECT REGEXP_SUBSTR('2020年10月1日', '[0-9]{4}'); 

输出结果为:

2020

方法二:内置函数

mysql提供了一些内置函数,可以直接从字符串中提取数字。

  • SUBSTRING_INDEX()函数:用于在字符串中寻找并返回子字符串。它的语法如下:

SUBSTRING_INDEX(原字符串, 分隔符, 出现次数)

其中,分隔符是用来将字符串拆分成多个部分的标志。如果出现次数为正,则从左端开始计算,返回第n个分隔符前面的子字符串;如果出现次数为负,则从右端开始计算,返回第n个分隔符后面的子字符串。

  • REPLACE()函数:用于将字符串中的字符替换成新的字符。它的语法如下:

REPLACE(原字符串, 要替换的字符, 新的字符)

示例一:

假设有以下的数字字符串:

$str = 'abc123def456ghi';

现在需要从字符串中提取数字部分。

代码如下:

SELECT REPLACE(REPLACE(SUBSTRING_INDEX(SUBSTRING_INDEX('abc123def456ghi', /^[0-9]/, -1), /^[^0-9]/, ''), ',', ''), ' ', '')+0 AS num;

输出结果为:

123456

示例二:

再假设有以下的字符串:

$str = '2020年10月1日';

现在需要从字符串中提取年份。

代码如下:

SELECT REPLACE(LEFT(SUBSTRING(str FROM 1 FOR 10), 4), ' ', '')+0 AS year;

输出结果为:

2020

以上就是通过正则表达式和内置函数来从mysql字符串中取数字的攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql中取字符串中的数字的语句 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • MySQL实战文章(非常全的基础入门类教程)

    MySQL实战文章(非常全的基础入门类教程) 简介 本篇文章是一份MySQL基础入门教程,非常适合初学者阅读。本文主要介绍MySQL的安装、配置、数据库操作等常用基础知识。 安装 首先需要去官方网站下载MySQL安装包,选择适合自己系统的版本。Windows用户可以下载exe格式的安装包,Linux用户可以下载rpm或deb格式的安装包。 安装完成后,需要对…

    database 2023年5月22日
    00
  • SQL 定位连续值区间的开始值和结束值

    定位连续值区间的开始值和结束值可以使用SQL窗口函数中的LEAD和LAG函数,它们可以分别返回当前行之后和之前的行,通过与当前行进行比较来确定区间的开始和结束。以下是详细步骤的攻略和两条实例: 步骤 1.输入LEAD或LAG函数,然后在括号中输入要比较的字段和偏移量,偏移量表示要比较的行是当前行之前还是之后的第几行。 2.使用OVER关键字定义分组,以确保针…

    database 2023年3月27日
    00
  • Python 基于Python从mysql表读取千万数据实践

    基于Python 从mysql表读取千万数据实践   by:授客 QQ:1033553122 场景:   有以下两个表,两者都有一个表字段,名为waybill_no,我们需要从tl_waybill_bar_record表读取1000w条唯一的waybill_no,然后作为INSERT SQL语句的一部分,填充到ts_order_waybill的waybill…

    MySQL 2023年4月13日
    00
  • Centos7使用yum安装Mysql5.7.19的详细步骤

    下面我将详细讲解“CentOS7使用yum安装MySQL5.7.19”的详细步骤,包含以下几个步骤: 1. 更新yum源 在进行任何软件安装之前,都要先更新系统的yum源,以避免因为使用旧版本的软件源而导致安装失败或是存在安全漏洞的情况。在终端中输入以下命令: sudo yum update 2. 添加MySQL Yum Repository 由于CentO…

    database 2023年5月22日
    00
  • MySQL如何恢复单库或单表,以及可能遇到的坑

    MySQL数据库恢复是数据库管理员非常常见的操作,常见的情况包括误删除、服务器故障等。在这种情况下,我们需要恢复数据库中的数据。本篇攻略将详细讲解MySQL如何恢复单库或单表,以及可能遇到的一些坑。 1. 恢复单库 在恢复单库之前,我们需要先停止MySQL服务,以确保数据不会被覆盖或丢失。以下是恢复单库的步骤: 备份当前的数据库文件 在进行数据恢复前,我们需…

    database 2023年5月22日
    00
  • 详谈MySQL和MariaDB区别与性能全面对比

    详谈 MySQL 和 MariaDB 区别与性能全面对比 介绍 MySQL 和 MariaDB 都是开源的关系型数据库管理系统(RDBMS),都具有高性能、可扩展性、可靠性等优点。然而,它们之间还有一些区别,本文将介绍它们的区别并进行性能对比。 区别 以下是 MySQL 和 MariaDB 之间的主要区别: 开发者不同:MySQL 由 Oracle 公司开发…

    database 2023年5月22日
    00
  • mysql中的多行查询结果合并成一个

    原文:http://blog.csdn.net/lifuxiangcaohui/article/details/6132147   SELECT GROUP_CONCAT(md.data1) FROM DATA md,contacts cc WHERE md.conskey=cc.id AND md.mimetype_id= 5 AND md.user_id…

    MySQL 2023年4月13日
    00
  • Impala 和 Oracle 的区别

    Impala和Oracle是目前比较常见的两款关系型数据库管理系统。尽管这两款系统都能存储和管理数据,它们之间存在着许多区别。下面将为您详细讲解Impala和Oracle的区别,并结合实例进行说明。 Impala和Oracle的基础知识 ImpalaImpala是基于Hadoop的SQL查询引擎,主要用于处理大数据。Impala使用MPP架构,允许查询并行处…

    database 2023年3月27日
    00
合作推广
合作推广
分享本页
返回顶部