通配符字符串选择 MySQL
Wildcard String Selection MySQL
我有一个 table 像这样的东西
|--------------------------------------------|------------------|
| Column 1 | column 2 |
|--------------------------------------------|------------------|
|/fixed/sample_1 | 10 |
|--------------------------------------------|------------------|
|/fixed/sample_1/ | 15 |
|--------------------------------------------|------------------|
|/fixed/sample_1/sp1_level2 | 10 |
|--------------------------------------------|------------------|
|/fixed/sample_1/sp1_level2/sp1_level3 | 20 |
|--------------------------------------------|------------------|
|/fixed/sample_2/ | 25 |
|--------------------------------------------|------------------|
|/fixed/sample_2/sp2_level2/sp2_level3 | 20 |
|--------------------------------------------|------------------|
|/fixed/sample_3 | 30 |
|--------------------------------------------|------------------|
我想对第 1 列的 select 使用 select 语句,并为第 2 列添加值,结果 table 为
|--------------------------------------------|------------------|
| Column 1 | column 2 |
|--------------------------------------------|------------------|
|/fixed/sample_1/ | 55 |
|--------------------------------------------|------------------|
|/fixed/sample_2/ | 45 |
|--------------------------------------------|------------------|
|/fixed/sample_3/ | 30 |
|--------------------------------------------|------------------|
有什么办法吗?
谢谢
我想你可以使用 substring_index()
和 group by
:
select substring_index(col1, '/', 3) as new_col1,
sum(col2)
from t
group by new_col1;
我有一个 table 像这样的东西
|--------------------------------------------|------------------|
| Column 1 | column 2 |
|--------------------------------------------|------------------|
|/fixed/sample_1 | 10 |
|--------------------------------------------|------------------|
|/fixed/sample_1/ | 15 |
|--------------------------------------------|------------------|
|/fixed/sample_1/sp1_level2 | 10 |
|--------------------------------------------|------------------|
|/fixed/sample_1/sp1_level2/sp1_level3 | 20 |
|--------------------------------------------|------------------|
|/fixed/sample_2/ | 25 |
|--------------------------------------------|------------------|
|/fixed/sample_2/sp2_level2/sp2_level3 | 20 |
|--------------------------------------------|------------------|
|/fixed/sample_3 | 30 |
|--------------------------------------------|------------------|
我想对第 1 列的 select 使用 select 语句,并为第 2 列添加值,结果 table 为
|--------------------------------------------|------------------|
| Column 1 | column 2 |
|--------------------------------------------|------------------|
|/fixed/sample_1/ | 55 |
|--------------------------------------------|------------------|
|/fixed/sample_2/ | 45 |
|--------------------------------------------|------------------|
|/fixed/sample_3/ | 30 |
|--------------------------------------------|------------------|
有什么办法吗?
谢谢
我想你可以使用 substring_index()
和 group by
:
select substring_index(col1, '/', 3) as new_col1,
sum(col2)
from t
group by new_col1;