jfinal中sql語句中的in關鍵字

2021-08-15 07:31:19 字數 1159 閱讀 4215

1.錯誤寫法

listlist = db.find("select id from b_product_detail_phone where productid = 123 and id not in (?)", "147,148");
查詢結果包括148,即引數並未全部識別147,148,僅識別了147,無法分辨是幾個引數。

正確寫法:

1.全部字串拼接

listlist = db.find("select id from b_product_detail_phone where productid = 123 and id not in (147,148)");
2.jfinal模板

//		listidlist = arrays.aslist(147,148);

listidlist = new arraylist<>();

idlist.add(147);

idlist.add(148);

sqlpara para = db.getsqlpara("test.test1", kv.by("idlist", idlist));

listlist = db.find(para);

renderjson(list);

all.sql檔案內容

#namespace("test")

#include("test.sql")

#end

test.sql中內容

#sql("test1")

select id from 表名 where pid= 739 and id not in (

#for(id:idlist)

#(for.index > 0 ? ", " : "")#(id)

#end

)#end

注意:模板中,#para生成佔位符,而#(value)生成值

參考:

Sql語句中的DDL語句

資料庫模式定義語言ddl data definition language 是用於描述資料庫中要儲存的現實世界實體的語言。主要由create 新增 alter 修改 drop 刪除 和 truncate 刪除 四個關鍵字完成。create database 資料庫名 建立乙個資料庫 create d...

偶遇Oracle中SQL語句中的

之前居然從來沒見到過此類寫法,諸如 select from t spolicy d,v policyemployee g where d.policyno g.policyno 查閱相關資料才發現此法就是外聯的另外一種表現形式其等同於 select from t spolicy d left joi...

SQL語句中中LIMIT的用法

假設有這麼一張表名叫ids,只有id一列 id 123 45.197198 199200 執行 select from ids limit 10,1輸出 id 11執行 select from ids limit 10,3輸出 id 11 1213執行 select from ids limit 4...