when對時間的提問,mybatis 中case_解決mybatis case when 報錯的問題

 2023-10-04 阅读 27 评论 0

摘要:在mybatis中使用case when進行條件篩選判斷時遇到Failed to process, please exclude the tableName or statementId.這樣的報錯信息,報錯的信息是語法錯誤但是我在mysql的命令行中運行sql語句是沒問題的when對時間的提問,//我的case when語句WHERE dept.type = 1

fe842ae41263b93833740371aac75ba6.png

在mybatis中使用case when進行條件篩選判斷時遇到

Failed to process, please exclude the tableName or statementId.

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

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

when對時間的提問,//我的case when語句

WHERE dept.type = 1

AND

(

CASE agent.dept_type

sql casewhen、WHEN "agent" THEN dept.id=30

END

)

//當agent的dept_type為"agent"時,將添加dept.id = 30的判斷

這段sql語句在命令行內運行沒問題但是放到mybatis上執行就會報錯

where條件case when?//修改后

WHERE dept.type = 1

AND dept.id=

(

CASE agent.dept_type

MySQL case when,WHEN "agent" THEN 30

END

)

后來將dept.id放到外面就解決了這個問題

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

用when怎么提問時間?//修改后

WHERE dept.type = 1

AND (dept.id=

(

CASE agent.dept_type

case,WHEN "agent" THEN 30

ELSE 0

END

) or dept.id is null)

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

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

2019-7-30-補充說明:

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

CASE WHEN *** THEN ***

ELSE "" =>這樣也會報錯,需要改成=> ELSE""

MySQL case。補充:Mybatis case when test 注意事項

p_id areaId,

c_id areaId,

r_id areaId,

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

case怎么用、以上為個人經驗,希望能給大家一個參考,也希望大家多多支持云海天教程。如有錯誤或未考慮完全的地方,望不吝賜教。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/113360.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息