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

要从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日

相关文章

  • SQL Server中函数、存储过程与触发器的用法

    SQL Server是一种关系型数据库管理系统,提供了许多常用的功能,如函数、存储过程和触发器等。这些功能可以提高数据库应用程序的可靠性和性能。下面我们逐个介绍这些功能及其用法。 一、函数 1.1 概述 函数是一种带有输入参数和返回值的可重复使用代码块。SQL Server提供了多种内置函数以及自定义函数。使用函数可以简化SQL语句,提高效率。 1.2 内置…

    database 2023年5月21日
    00
  • MySQL创建用户

    MySQL是一种常用的关系型数据库管理系统,它支持多用户多任务的操作,因此我们需要在MySQL中为每个用户分配不同的权限。 在MySQL中创建用户有两种方式:使用GRANT语句和使用CREATE USER语句。下面我们分别介绍这两种创建用户的方式。 使用GRANT语句创建用户 GRANT语句可以授权给MySQL数据库中的用户不同的权限。下面是通过GRANT语…

    MySQL 2023年3月10日
    00
  • Java异常日志堆栈丢失的原因与排查

    Java异常日志堆栈丢失是我们在开发过程中常见的问题之一,也是比较棘手的问题之一。本文将详细讲解Java异常日志堆栈丢失的原因与排查的完整攻略。 什么是Java异常日志堆栈丢失 当Java程序运行时发生异常时,JVM会在控制台或日志文件中打印异常堆栈信息。这些异常堆栈信息是极其重要的,可以帮助我们找到异常的源头并修复问题。然而,在某些情况下,我们可能会发现日…

    database 2023年5月21日
    00
  • Redis数据类型

    五大数据类型 string (动态字符串) hash (哈希表、压缩链表) list (双端链表、压缩链表) set (哈希表、整数集合) zset (跳表、压缩链表) 动态字符串 存储数字用int类型编码(8字节长整型)、存非数字小于39字节用embstr、大于39字节大于用raw编码。 struct sdsdr{ int len;// o(1)时间获取字…

    Redis 2023年4月12日
    00
  • Centos7 Redis主从搭建配置的实现

    下面是CentOS 7上 Redis主从搭建配置的实现攻略。 准备工作 1.安装必要的依赖 在终端中执行以下命令,安装需要的依赖: yum install gcc gcc-c++ kernel-devel 2.下载并安装Redis 在官网 https://redis.io/download 中下载最新版本的Redis,然后执行以下命令进行安装: tar xz…

    database 2023年5月22日
    00
  • DBMS中的检查点

    检查点(Checkpoint)是DBMS中很重要的概念,它用于确保在发生宕机等异常情况后能够进行恢复操作。下面是关于DBMS中检查点的详细讲解,包括定义、作用、发生时机等内容,并使用一个实例进行说明。 检查点定义 检查点是DBMS中的一个进程,专门负责将内存中的数据存储到磁盘中。具体来说,它会把数据库中被修改过的数据写入到磁盘中,并记录最后一个成功写入磁盘的…

    database 2023年3月27日
    00
  • PHP源码之 ext/mysql扩展部分

    为了更好地说明“PHP源码之 ext/mysql扩展部分”的攻略,下面我将按照如下顺序进行讲解: 简介 ext/mysql扩展 安装PHP及扩展 源码结构分析 函数及其使用示例 简介 ext/mysql扩展 ext/mysql扩展是一个用于支持mysql数据库的PHP扩展,它已经在PHP 5.5.0版本中移除,并在PHP 7.0中被官方废弃。 安装PHP及扩…

    database 2023年5月21日
    00
  • Redis的使用模式之计数器模式实例

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/123.html?1455853785 Redis 是目前 NoSQL 领域的当红炸子鸡,它象一把瑞士军刀,小巧、锋利、实用,特别适合解决一些使用传统关系数据库难以解决的问题。打算写一系列 Redis 使用模式的文章,深入总结介绍 Re…

    Redis 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部