色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

解決mybatis case when 報錯的問題

瀏覽:2日期:2023-10-20 08:40:01
在mybatis中使用case when進行條件篩選判斷時遇到

Failed to process, please exclude the tableName or statementId.

這樣的報錯信息,報錯的信息是語法錯誤

但是我在mysql的命令行中運行sql語句是沒問題的

//我的case when語句WHERE dept.type = 1AND (CASE agent.dept_typeWHEN 'agent' THEN dept.id=30END)//當agent的dept_type為'agent'時,將添加dept.id = 30的判斷

這段sql語句在命令行內(nèi)運行沒問題但是放到mybatis上執(zhí)行就會報錯

//修改后WHERE dept.type = 1AND dept.id=(CASE agent.dept_typeWHEN 'agent' THEN 30END)后來將dept.id放到外面就解決了這個問題

20190718-補充記錄 :遇到另一個問題,如果dept這個表是聯(lián)查來的有可能會沒有數(shù)據(jù),在dept無數(shù)據(jù)的時候我們就無法給dept.id賦上啥參數(shù)了,并且不可以影響原表數(shù)據(jù)的查詢,我改成了下面這樣:

//修改后WHERE dept.type = 1AND (dept.id=(CASE agent.dept_typeWHEN 'agent' THEN 30ELSE 0END) or dept.id is null)

添加dept.id為空的判斷即可

(在mysql語句里可以有很多方法解決,但是在mybatis上就會報錯 -_-||)

2019-7-30-補充說明:

如果是空字符串不可以使用''要改成單引號’’

CASE WHEN *** THEN ***ELSE '' =>這樣也會報錯,需要改成=> ELSE’’

補充:Mybatis case when test 注意事項

<choose> <when test='groupBy!=null and groupBy==1'>p_id areaId, </when> <when test='groupBy!=null and groupBy==2'>c_id areaId, </when> <when test='groupBy!=null and groupBy==3'>r_id areaId, </when> </choose>

test 中 用 == 不能用 = ,否則報錯。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。如有錯誤或未考慮完全的地方,望不吝賜教。

相關文章:
主站蜘蛛池模板: 国产女厕偷窥系列在线视频 | 日本成人免费观看 | 在线精品亚洲 | 美女毛片免费看 | 亚欧成人毛片一区二区三区四区 | 日韩亚洲人成网站在线播放 | 偷拍精品视频一区二区三区 | 免费国产黄 | 欧美一区二区三区视视频 | 久久精品无遮挡一级毛片 | 欧美日韩精品一区二区三区高清视频 | 国产精品免费_区二区三区观看 | 国产欧美日韩在线人成aaaa | 亚洲欧美综合网 | 亚洲国产成人精品一区91 | 亚洲成a人片在线观看中 | 一区二区在线免费视频 | 一级 黄 色 片免费 一级aaaaaa毛片免费 | 一区二区三区久久精品 | 免费看一区二区三区 | 欧美日韩一区二区三 | 欧美久色 | 久久久久久国产精品免费 | 日韩 欧美 国产 师生 制服 | 亚洲欧美日韩国产制服另类 | 亚洲午夜久久久久影院 | 国产免费久久精品 | 国产麻豆入在线观看 | 男女晚上爱爱的视频在线观看 | 中文字幕在线看视频一区二区三区 | 日本人成免费大片 | 亚洲国产欧美精品一区二区三区 | 国产精品理论片在线观看 | 亚洲jjzzjjzz在线播放 | 韩国在线精品福利视频在线观看 | 国产精品亚洲精品一区二区三区 | 久久综合婷婷香五月 | 亚洲一级毛片视频 | 久久久久国产精品免费网站 | 国产三级a三级三级 | 日本久久一区二区 |