分页过滤SQL求总条数SQL正则

时间:2023-01-20 21:35:30
public static void main(String[] args) throws Exception {
String queryForScanUsers_SQL = "select a.username AS user_name,b.* from tbl_aaa a left join tbl_bbb b where a.id=? limit 10";
//去除WHERE和LIMIT
String sqlRegex = "(select\\s+)(.*)(\\s+from)(.+?(?=limit))";
Pattern p = Pattern.compile(sqlRegex, Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(queryForScanUsers_SQL);
while (m.find()) {
//SELECT
System.out.println(m.group(1).trim());
//Columns,分页中求总条数需替换成COUNT(1)
System.out.println(m.group(2).trim());
//FROM
System.out.println(m.group(3).trim());
//Tables
System.out.println(m.group(4).trim());
} HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
format.setCaseType(HanyuPinyinCaseType.LOWERCASE);   //小写拼音字母
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); //不加语调标识
format.setVCharType(HanyuPinyinVCharType.WITH_V);    //u:的声母替换为v
StringBuilder sb = new StringBuilder();
System.out.println(PinyinHelper.toHanyuPinyinString("张三feng", format, ""));
}