mysql substring_index_mysql函数substring_index的用法

2023-05-16

MySQL中一个很好用的截取字符串的函数:substring_index。

用法规则:

substring_index(“待截取有用部分的字符串”,“截取数据依据的字符”,截取字符的位置N)

具体例子:

首先假定需要截取的字符串为“15,151,152,16”(虽然这里指的不是iP,可以看作是ip结构来处理吧),

这里截取的依据是逗号:“,”

具体要截取第N个逗号前部分的字符;

意思是:在字符串中以逗号为索引,获取不同索引位的字符

结果如下:

取第一个逗号前的字符串 :

SELECT SUBSTRING_INDEX('15,151,152,16',',',1); ==>得到结果为: 15

N可以为负数,表示倒数第N个索引字符后面的字符串。

(有负号的时候,可以将整个字符倒过来看,依旧是第N个字符前面的部分。)

SELECT SUBSTRING_INDEX('15,151,152,16',',',-1);==>得到结果为: 16

取第2个逗号前那部分字符串里,最后逗号后面的部分

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('15,151,152,16',',',2),',',-1);==>得到结果为: 151

取倒数第二个逗号后面部分字符串,再去这部分里第一个都号前的部分:

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('15,151,152,16',',',-2),',',1);==> 得到结果为:152

SELECT SUBSTRING_INDEX('15,151,152,16',',',-1);==>得到结果为: 16

若是数据库查询json的某一个字符的时候,例如:{"id":"101","name":"龙工"}

则可以

SELECT SUBSTRING(SUBSTRING_INDEX(userId, '",', 1),8,40)id from ed_electrictask

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql substring_index_mysql函数substring_index的用法 的相关文章

  • MySQL:如何检索随机行或多个随机行?

    我有一个 MySQL 数据库表 用于存储照片的 URL 我需要从特定类型的数据库中提取 5 条随机记录 我可以像这样提取 5 条记录 SELECT Photos FROM Photos WHERE Photos Type ID 4 LIMI
  • 匹配 MySQL 中单词/后缀的相似/变体

    我如何匹配 MySQL 中单词的变体 例如搜索 accountancy 应匹配 accountant accountants accounting 等 我使用共享主机 因此无法向 MySQL 添加任何功能 例如 levenshtein 我想
  • 如何在 Flex 中对 PHP 字符串使用换行符

    这是我的 MXML
  • 如何使用mysqli准备好的语句?

    我正在尝试准备好的语句 但下面的代码不起作用 我收到错误 致命错误 在非对象上调用成员函数execute var www prepared php 第 12 行
  • CSV 损坏,如何修复?

    我正在尝试解析 CSV 我想将它放入数据库或只是用 JavaScript 解析它 但由于语法损坏 任何一种方法都会失败 我的整个 CSV 文件在这里 https gist github com 1023560 https gist gith
  • 在mysql中使用GROUP BY时,如何选择最长的文本字段,如MAX()?

    在 MySql 中 您可以使用MAX 使用时获得最高值的函数GROUP BY 我怎样才能做同样的事情来获得最长的文本字符串 样本表 id post id title body 1 ZXBF1J Favorite Color My favor
  • PDO 和 IS NOT NULL 函数

    我是 PDO 新手 我想知道是否有相当于 mysql 语句的语句来检查参数是否不为空 例如 SELECT FROM table WHERE param IS NOT NULL 我试过这个 pdo gt prepare SELECT FROM
  • 在没有条件的情况下,如何使查询不返回任何内容?

    相当简单 我有一对多 多对一关系 我想查询它 但是 当未提供任何 WHERE 子句信息时 我不希望返回任何结果 简单来说 如何使查询变得非贪婪 您可以添加一个始终为 false 的 where 子句 并附加您想要用 OR 提供的条件 sel
  • 如何使用Query备份MySQL数据库?

    我们如何使用 Query 备份 MySQL 数据库 就像我们可以使用以下 Query 备份 MS SQL 一样 Query backup database DATABASENAME to disk PATH 使用 mysqldump php
  • mysql REGEXP 不匹配

    我有一个正则表达式 旨在捕获字符串中的电话号码 1 s d 3 s d 3 s d 4 我尝试使用以下查询在 MySql 数据库中查询此正则表达式 SELECT FROM everything instances meta AS m WHE
  • 总小时数无法从 Android 插入 MySQL

    我使用以下公式获得总小时数 public void updateTotalHours int a SplitTime objMyCustomBaseAdapter getFistTime int b SplitTime objMyCusto
  • 数据库表可以没有主键吗?

    谁能告诉我关系数据库 例如MySQL SQL SERVER 中的表是否可以没有主键 例如 我可以有桌子day temperature 我注册的地方temperature and time 我不明白为什么要为这样的表设置主键 从技术上讲 您可
  • 如何选择按范围分组的值的计数

    斯塔克万岁 我需要选择按范围分组的值的计数 举例来说 假设我在表列中有以下值 1 2 4 5 6 8 9 11 13 16 然后 我想检索 5 范围内它们的计数 如下所示 From 0 to 4 there is 3 values 1 2
  • 选择给定日期范围内的所有月份,包括值为 0 的月份

    我正在尝试编写一个 MySQL 查询来获取给定日期之间所有月份的每月平均值 我的想法是这样的 查询 类似 SELECT AVG value1 as avg value 1 AVG value2 as avg value 2 MONTH sa
  • mysql中更新查询中的多个set和where子句

    我认为这是不可能的 因为我找不到任何东西 但我想我会在这里检查一下 以防我没有寻找正确的东西 我的数据库中有一个设置表 其中有两列 第一列是设置名称 第二列是值 我需要同时更新所有这些 我想看看是否有一种方法可以在一个查询的同时更新这些值
  • 如何使用C来限制SubString、Limit? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 第1节 include
  • MySQL如何获取可能重叠日期的开始/结束日期之和

    我有一个开始 结束日期表 我想按 id 对其进行分组并对每个 id 的总时间进行求和 例如 fk id start end 3 2014 03 21 10 02 2014 05 01 08 05 3 2014 06 05 05 00 201
  • 这段php代码安全吗?

    我知道我应该使用准备好的语句 但我的下一个项目将使用准备好的语句 我只需要完成这个简单的小应用程序 所以我的问题是 以下代码片段安全吗 我使用了 htmlentities 以及 mysql real escape string 因为我认为这
  • PHP md5() 给出与 MySQL md5 不同的输出

    我正在尝试设置登录系统 但无法解决一个问题 PHP 通过 md5 给了我另一个输出 比MySQL 例如 在 PHP 中 password md5 brickmasterj return password 返回 3aa7b18f304e2e2
  • 仅从 MySQL 中的日期时间 (YYYY-MM-DD HH:MM:SS) 中选择不同的日期

    执行此命令会带来以下结果 所有列中的所有日期 因此它本质上与 SELECT date 执行相同的操作 没有不同 SELECT DISTINCT date FROM daily ORDER BY date DESC 2013 02 12 16

随机推荐