MySQL语句中字段较多起别名比较麻烦,如何快速起别名?代码如下:
/**
* mysql字段起别名(单表查询)
* @param field 字段用逗号隔开组成的字符串
* @return 别名用逗号隔开组成的字符串
*/
public static String getAlias(String field) {
//以下划线为分割符
Pattern linePattern = Pattern.compile("_(\\w)");
String[] fields = field.split(",");
for (int i = 0; i < fields.length; i++) {
String str = fields[i].toLowerCase();
Matcher matcher = linePattern.matcher(str);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
}
matcher.appendTail(sb);
fields[i] = fields[i] + " as " + sb;
}
return StringUtils.join(fields, ",");
}
/**
* mysql字段起别名(多表查询)
* @param table 表别名
* @param field 字段用逗号隔开组成的字符串
* @return 别名用逗号隔开组成的字符串
*/
public static String getAlias(String table,String field) {
Pattern linePattern = Pattern.compile("_(\\w)");
String[] fields = field.split(",");
for (int i = 0; i < fields.length; i++) {
String str = fields[i].toLowerCase();
Matcher matcher = linePattern.matcher(str);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
}
matcher.appendTail(sb);
fields[i] = table + "." + fields[i] + " as " + sb;
}
return StringUtils.join(fields, ",");
}