如何在部分列结果中使用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 :
实际数据:
答案 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
的工作原理是,将第一个出现的:
的左边的子字符串作为组名的文本和数字部分之间的分隔符。