MySQL 检索特定字符串之前的值

标签 mysql sql

我的数据库中有多行,其描述采用以下格式之一:

SC068 NGN 399ppc + 139ppm
SC068 NGN 139ppm
SC079 NGN 200ppc + 200ppm (After 60 Seconds)
SC060 NGN 200ppc

如何检索 ppc 和/或 ppm 之前的数字?

最佳答案

假设每个只出现一次,您可以这样做:

select (case when col like '%ppm%'
             then substring_index(substring_index(col, 'ppm', 1), ' ', -1) + 0 
        end) as ppm_num,
       (case when col like '%ppc%'
             then substring_index(substring_index(col, 'ppc', 1), ' ', -1) + 0
        end) as ppc_num

这些仅适用于字符串中的第一次出现。 + 0 将关键字之前的字符静默转换为数字。

关于MySQL 检索特定字符串之前的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46288035/

相关文章:

javascript - 将来自 HTTP 请求的所有变量视为整数(有异常(exception))

java - 将两个 SQL 语句合并为一个,如果满足某些条件则更新表中的一行

php - MySQL 选择 IF INNER JOIN

sql - 如何从具有 MAX 值的行中选择其他字段

mysql - 触发错误mysql

MySQL数据库表未被读取,无法删除数据库

mysql - 多组Mysql

javascript - 如何创建一个随着 SQL 数据库中的数据更改而动态更新的对象?

mysql - SQL:如何包含不存在的记录

mysql - 连接表上 2 列的唯一键