where 1=1 的做用

在程序中寫代碼用於多條件查詢,須要根據客戶傳入的查詢參數來構建sql語句,例如根據中文名、英文名查詢學生表sql

String sql = "SELECT * FROM student WHERE 1=1 ";

 

若是用戶傳入了中文名spa

if (StringUtils.isNotBlank(request.name)) {
    sql = sql + "name = ? ";
}

若是用戶傳入了英文名code

if (StringUtils.isNotBlank(request.englishName)) {
    sql = sql + "englishName= ?";
}

這樣拼sql語句,如果用戶一個參數都沒傳,sql就是"SELECT * FROM student WHERE ",那就報錯了blog

所以第一行代碼在WHERE 後面加上 1= 1就能保住客戶未傳參數時也能正常執行class

相關文章
相關標籤/搜索