我试图通过一个Mysql查询将数据库中所有相同的条目分组为一个。我有一个数据库,其名称不同,数据库中的条目就像
Contract Color
OG-46374 I.Khaki
OG-46375 I-KHAKI
OG-46376 I KHAKI
OG-46377 W Ocher
OG-46378 W.Ocher
现在的问题是我的数据库将所有这些值都视为不同的条目,而我无法处理或强迫操作员编写确切的值,如何将所有“ I Khaki”和W ocher颜色视为一组中的不同颜色按条款 我的Sql查询有点像
SELECT
*,
ROUND(SUM(meter_yard_length), 0) AS TotaL_Length_Contract,
ROUND(SUM(IF(quality = 'A', meter_yard_length, 0)),
0) AS A_Quality_length,
ROUND(SUM(IF(quality = 'B', meter_yard_length, 0)),
0) AS B_Quality_length GROUP BY r.contract_no, r.color DESC;
请告诉通用解决方案,因为我有很多可能性,例如“ I * khaki”,“ I--Khaki”等,我无法通过replace等方式控制所有这些可能性。
答案 0 :(得分:0)
此答案基于您提供的非常有限的示例数据。我看到颜色名称有两个问题。首先,并非所有字母都总是相同。其次,在给定位置上可能有一个空格,句点或破折号,而实际上所有三个都代表相同的逻辑名称。我们可以尝试使用cloneWorkingSolution()
将点和破折号转换为空格,然后使用REPLACE
处理案例问题。
LOWER()