国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

解決mybatis case when 報錯的問題

瀏覽:5日期: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語句在命令行內運行沒問題但是放到mybatis上執行就會報錯

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

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

//修改后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 中 用 == 不能用 = ,否則報錯。

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

標簽: Mybatis 數據庫
相關文章:
主站蜘蛛池模板: 国产激情一区二区三区四区 | 97久久精品视频 | 亚州久久 | 九九视频在线观看6 | 日本特黄a级高清免费酷网 日本特黄特色 | 中文字幕日韩一区二区不卡 | 亚洲欧美日韩一区 | 中国一级特黄视频 | 久久99国产亚洲高清观看首页 | 国产精品成人久久久 | 亚洲欧美一区二区久久 | 国产成人精品高清不卡在线 | 亚洲视频在线免费看 | 青青青免费手机版视频在线观看 | 久热久草| 国产三级手机在线 | 欧美三级视频在线观看 | 一二三区在线观看 | 男女男在线精品网站免费观看 | 欧美一级α片毛片免费观看 | 4四虎44虎www在线影院麻豆 | 国产好片无限资源 | 国产乱码精品一区二区三区四川人 | 国产一级性生活 | 一级做人爱a视频正版免费 一级做性色a爱片久久片 | 青青爽国产手机在线观看免费 | va欧美| 日韩在线视频免费 | 国产原创视频在线 | 色综合久久88色综合天天 | 国产午夜永久福利视频在线观看 | 一区二区三区在线免费视频 | 伊人婷婷色香五月综合缴激情 | 国产精品亚洲精品一区二区三区 | 精品日本亚洲一区二区三区 | 国产精品99精品久久免费 | 免费看一毛一级毛片视频 | 99色视频在线观看 | 蜜桃88av | 亚洲视频网址 | 亚洲在线国产 |