Răsfoiți Sursa

修改ORDER BY FIELD兼容问题

317699326@qq.com 1 lună în urmă
părinte
comite
dfa0023ac2
1 a modificat fișierele cu 22 adăugiri și 6 ștergeri
  1. 22 6
      models/data_manage/chart_edb_mapping.go

+ 22 - 6
models/data_manage/chart_edb_mapping.go

@@ -95,13 +95,29 @@ func GetChartEdbMappingListByEdbInfoIdList(edbIdList []int) (list []*ChartEdbInf
 		return
 	}
 	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT edb_info_id,source_name,source,sub_source,edb_code,edb_name,edb_name_en,frequency,unit,unit_en,start_date,end_date,modify_time,latest_date,latest_value,unique_code,edb_info_type AS edb_info_category_type,max_value,min_value,edb_type,classify_id,is_join_permission
-             FROM edb_info
+
+	if utils.DBDRIVER_NAME == "postgres" {
+		sql := ` SELECT edb_info_id,source_name,source,sub_source,edb_code,edb_name,edb_name_en,frequency,unit,unit_en,start_date,end_date,modify_time,latest_date,latest_value,unique_code,edb_info_type AS edb_info_category_type,max_value,min_value,edb_type,classify_id,is_join_permission
+	        FROM edb_info
 			 WHERE edb_info_id IN(` + utils.GetOrmInReplace(num) + `)
-			ORDER BY FIELD(edb_info_id,` + utils.GetOrmInReplace(num) + `)
-              `
-	_, err = o.Raw(sql, edbIdList, edbIdList).QueryRows(&list)
-	return
+			ORDER BY  CASE edb_info_id `
+
+		for k, v := range edbIdList {
+			sql += `WHEN ` + strconv.Itoa(v) + ` THEN ` + strconv.Itoa(k+1)
+		}
+		sql += ` END`
+
+		_, err = o.Raw(sql, edbIdList).QueryRows(&list)
+		return
+	} else {
+		sql := ` SELECT edb_info_id,source_name,source,sub_source,edb_code,edb_name,edb_name_en,frequency,unit,unit_en,start_date,end_date,modify_time,latest_date,latest_value,unique_code,edb_info_type AS edb_info_category_type,max_value,min_value,edb_type,classify_id,is_join_permission
+		        FROM edb_info
+				 WHERE edb_info_id IN(` + utils.GetOrmInReplace(num) + `)
+				ORDER BY FIELD(edb_info_id,` + utils.GetOrmInReplace(num) + `) `
+		_, err = o.Raw(sql, edbIdList, edbIdList).QueryRows(&list)
+		return
+	}
+
 }
 
 // GetChartEdbMappingListByIdList 通过图表id列表获取