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日

相关文章

  • SQLserver2008使用表达式递归查询

    下面是“SQL server 2008使用表达式递归查询”的完整攻略。 什么是表达式递归查询 表达式递归查询是一种使用递归方式查询数据的方法。它与常规递归的不同之处在于它使用了SQL Server的WITH语句,这使得它更容易理解而且性能更好。在这种类型的查询中,一个查询使用自身的输出来生成下一个查询的输入,这样就可以逐步构造出一个结果集。 使用表达式递归查…

    database 2023年5月21日
    00
  • mysql的存储过程、游标 、事务实例详解

    Mysql的存储过程、游标、事务实例详解 存储过程 存储过程(Stored Procedure)是指一组为了完成特定功能的SQL语句集,经过编译后可重复使用。它就像是一个存储在数据库中的脚本,可以用来实现一些针对数据库的操作,比如:增、删、改、查等等。 存储过程的优点: 简化复杂的操作流程,避免将复杂的查询语句等写在应用程序中,提高了程序的安全性和稳定性。 …

    database 2023年5月22日
    00
  • SQL 反向变换结果集

    当我们需要对一个结果集进行排序或者筛选时,可以使用SQL语句来实现。但是有时候,我们需要对结果集进行反向变换,即将升序排序变为降序排序,或将所有选中的行变为未选中,这时就需要使用反向变换操作。 SQL 反向变换结果集的攻略,包含以下几个部分: 反向排序 使用ORDER BY语句可以对某个或某几个字段进行升序或降序排列。如果要对现有的升序排序结果集进行反向排序…

    database 2023年3月27日
    00
  • html5 Web SQL Database 之事务处理函数transaction与executeSQL解析

    HTML5 Web SQL Database是一种基于浏览器端的本地数据库解决方案,而其中的事务处理函数transaction以及执行SQL语句的函数executeSql是使用Web SQL Database实现更加复杂的交互应用所必须要掌握的。 1. 事务处理函数transaction transaction是Web SQL Database中的事务处理函…

    database 2023年5月21日
    00
  • MySQL数据库使用mysqldump导出数据详解

    MySQL是一个非常流行的关系型数据库管理系统,它具有高效、可靠、安全等特点。在实际的数据库操作过程中,我们常常需要备份和恢复数据。mysqldump命令是MySQL自带的备份工具,可以在快速、安全、方便地备份和还原MySQL数据库。 本篇文章将详细介绍如何使用mysqldump导出数据的完整攻略。 步骤一:连接到MySQL服务器 在使用mysqldump命…

    database 2023年5月18日
    00
  • Android架构组件Room指南

    下面就为大家详细讲解“Android架构组件Room指南”的完整攻略。 什么是Room Room是Google推出的一个轻量级的ORM(Object-Relational Mapping)框架,是Android架构组件之一,用于替代Android存储数据库的SQLite语句。 Room提供了一个对象映射层,让您可以使用Java方法调用来访问您的数据库。它旨在…

    database 2023年5月18日
    00
  • SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法

    对于SQL Server作业失败的问题,我们可以采用以下解决方法: 问题背景 在SQL Server管理平台上创建了一个作业,但在运行该作业时,发现提示“无法确定所有者是否有服务器访问权限”,导致作业运行失败。 解决方法 方法一:更改作业所有者 打开SQL Server管理平台,在左侧“对象资源管理器”中找到作业所在的数据库; 找到该数据库下的“安全性”文件…

    database 2023年5月21日
    00
  • python 对redis key的基本操作

    首先看一下Python 操作redis.StrictRedis 的初始化方法__init__ def __init__(self, host=’localhost’, port=6379, db=0, password=None, socket_timeout=None, socket_connect_timeout=None, socket_keepali…

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