1. 程式人生 > 其它 >MySQL - sql多條件查詢拼接

MySQL - sql多條件查詢拼接

技術標籤:MySQLmysql程式碼規範

sql多條件查詢拼接(Java)

  • 僅提供思路
  • E(頻繁訪問資料庫查詢部分資料) < E(單次訪問所有資料 + 再處理)
  • sql拼接規範

一:思路

/**
 * @author xux
 * @date 2020-12-07 20:51
 */
public class P02_SplitAndMerge {
    public static void main(String[] args) {
        String[] data = new String[]{"a89e8fd5a4sss5s9er8s45", "r56e1fd5a4srr5s9er89ds"
, "tr47ufd5a4srr5s6rg7udt"}; StringBuilder ids = new StringBuilder(); for(int i=0; i<data.length; i++){ ids.append(data[i]); ids.append(","); } // [from, to) String idss = ids.substring(0, ids.length()-1); String[
] ids1 = idss.split(","); StringBuilder sb = new StringBuilder(); for(int i=0; i<ids1.length; i++){ sb.append(" ID='" +ids1[i]+ "' "); sb.append("OR "); } sb = sb.replace(sb.length()-3,sb.length()-1," "
); StringBuilder sql = new StringBuilder(); sql.append("SELECT "); sql.append(" * "); sql.append("FROM "); sql.append(" MAT_INFO "); sql.append("WHERE "); sql.append(sb); // SELECT * FROM MAT_INFO WHERE ID='a89e8fd5a4sss5s9er8s45' OR ID='r56e1fd5a4srr5s9er89ds' OR ID='tr47ufd5a4srr5s6rg7udt' System.out.println(sql); } }

二:sql拼接規範

  • 拼接字串使用StringBuffer/StringBuilder
  • 全大寫
  • SELECT、FROM、WHERE頂行,隨後內容空兩個空格
  • 每個sql字串後新增一個空格
  • LEFT JOIN之類連線查詢語句要換行
  • 遇到AND換行,在上一行語句基礎上再在開頭新增兩個空格
  • SELECT查詢結果別名必須加AS,其餘別名禁止加AS





在這裡插入圖片描述