MySQL在小数点后转换丢失数字的子串

标签 mysql regex substring

我正在运行以下查询:

SELECT
    SUBSTRING(pluginText,LOCATE('cvss', pluginText), 21) AS CVSS_Base_Score_Text,
    CONVERT(SUBSTRING_INDEX(SUBSTRING(pluginText,
        LOCATE('cvss', pluginText), 21),' : ',-1),UNSIGNED INTEGER)
    AS CVSS_Base_Score_Number
FROM vulnerabilities_internal
WHERE LCASE(pluginText) REGEXP '.*cvss.*'

它返回 2 列

CVSS_Base_Score_Text         CVSS_Base_Score Number
CVSS Base Score: 4.3         4

如何修改此查询,使 CVSS_Base_Score_Number 列中的数字保留小数点并显示为 4.3?

回答了我自己的问题:

SELECT
SUBSTRING(pluginText,LOCATE('cvss', pluginText), 21) AS CVSS_Base_Score_Text,
CONVERT(SUBSTRING_INDEX(SUBSTRING(pluginText,LOCATE('cvss', pluginText), 21),' : ',  
-1), 
DECIMAL(10,1)) AS CVSS_Base_Score_Number
FROM vulnerabilities_internal

最佳答案

下面是将为您提供所需结果的查询。

SELECT
    SUBSTRING(pluginText,LOCATE('cvss', pluginText), 21) AS CVSS_Base_Score_Text,
    CAST(SUBSTRING_INDEX(SUBSTRING(pluginText,
        LOCATE('cvss', pluginText), 21),' : ',-1) as decimal(2,1))
    AS CVSS_Base_Score_Number
FROM vulnerabilities_internal
WHERE LCASE(pluginText) REGEXP '.*cvss.*'

关于MySQL在小数点后转换丢失数字的子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10742751/

相关文章:

c# - WPF 应用程序的最佳本地数据库

mysql - 选择IP范围内的CIDR

mysql - 全文搜索 django : Mysql not so bad ?(对比 sphinx、xapian)

python - 如何判断数组中的任何元素是否是给定字符串的子字符串?

java - 为什么这段代码不能正常工作?

php - MYSQL存储过程2个表,2个select和1个update请求到同一张表

java - 匹配这些规则的正则表达式模式

java - 使用正则表达式查找 C 风格注释 block (/* */) 但不是字符串内部的注释 block ?

java - 在特定字符串后向字符添加单引号

mysql - 带破折号的子字符串索引