mysql在部分列结果中与众不同

时间:2019-07-19 08:11:16

标签: mysql

如何在部分列结果中使用mysql与众不同。

SELECT distinct (groupname) FROM custom_quotes.compatibility_rule where groupname like '%_Sol%';

当前结果:-

Acetone_Sol : 1
Acetone_Sol : 10
Acetone_Sol : 1000
Water_Sol : 9596
Water_Sol : 9597
Isopropanol_Sol : 4074
Isopropanol_Sol : 4075
Isopropanol_Sol : 4076

预期:

Acetone_Sol :
Water_Sol : 
Isopropanol_Sol : 

实际数据:

enter image description here

2 个答案:

答案 0 :(得分:3)

您可以使用left()来获取没有数字的列部分:

SELECT distinct left(groupname, locate(':', groupname)) 
FROM custom_quotes.compatibility_rule 
where groupname like '%#_Sol%' ESCAPE '#';

您还需要转义'%_Sol%'中的下划线,因为它是LIKE的通配符。

答案 1 :(得分:2)

我们可以在此处尝试使用SUBSTRING_INDEX

SELECT DISTINCT
    CONCAT(SUBSTRING_INDEX(groupname, ':', 1), ':') AS groupname_distinct
FROM custom_quotes.compatibility_rule
WHERE groupname LIKE '%\_Sol%';

SUBSTRING_INDEX的工作原理是,将第一个出现的:的左边的子字符串作为组名的文本和数字部分之间的分隔符。