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

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

mysql - mybatis select語句問題

瀏覽:117日期:2022-06-11 10:15:51

問題描述

消息提醒續,這個消息可能是別人直接回復了你的文章,這時需要進行數據庫操作關聯文章表獲取相應文章的內容【消息提醒:您的文章xxx有了新的回復】,也可能是別人回復了你的評論這時關聯的就是評論表來獲取評論的內容【消息提醒:您的評論xxx有了新的回復】,消息點擊后即可出現顯示詳情這樣子。

數據庫表結構如下

mysql - mybatis select語句問題

mbelongbid為消息所屬的文章的id,mbelongcid為消息所屬的評論的id。當mbelongcid為空時說明消息是直接回復文章,此時關聯的是文章表;當mbelongcid不為空時說明消息回復的對象是某一條評論,此時關聯的是評論表。

sql語句要怎么寫才能符合這種需求?現在的想法是:

select

r.*, <if test='mbelongcid == null'>`blog`.btitle</if><if test='mbelongcid != null'>`comment`.ccontent</if>

from (

select mid, mreferuid, mbelongbid, mbelongcidfrom messagewhere mid = #{_parameter}

)r, <if test='mbelongcid == null'>

`blog` where r.mbelongbid = `blog`.bid

</if> <if test='mbelongcid != null'>

`comment` where r.mbelongcid = `comment`.cid

</if>

直接這樣寫是有問題的,大致的想法就是根據mbelongcid是否為null去關聯不同的表獲取不同的字段,有沒有好的解決方案或者建議?

問題解答

回答1:

mbelongcid不是你傳入的參數的一部分,所以mybatis并不知道它到底是不是null!,你要實現你想要的這種邏輯應該從數據庫端去著手,比如創建一個視圖,這個視圖由兩個查詢union而成。

select mid, mreferuid, ’blog’ as type, mbelongbid as ridfrom message m, blog bwhere mbelongcid is null and mbelongbid is not null and mbelongbid = b.bidunionselect mid, mreferuid, ’comment’ as type, mbelongcid as ridfrom message m, comment cwhere mbelongcid is not null and mbelongcid = c.cid

當你寫程序遇到這種需要很奇怪的語法的時候,請先回顧一下設計方案,通常緣由都是設計就有問題。

數據表誰設計的?扣工資 至少要加個下劃線啊m_belong_cid,學生黨,慢慢來吧。

回答2:

我們項目用的是注解式SQL,遇到這類情況都是直接在Provider拼SQL解決。

回答3:

MessageMapper.xml這部分的語句如下:

mysql - mybatis select語句問題

mysql - mybatis select語句問題

message類如下:

mysql - mybatis select語句問題

相關文章:
主站蜘蛛池模板: 亚洲国产高清在线精品一区 | 91精品国产高清久久久久 | 亚洲最大看欧美片网站 | 精品区 | 亚洲男女在线 | 欧美一级特黄特色大片 | 欧美视频一区 | www成人国产在线观看网站 | 欧美国产在线视频 | 自拍视频一区 | 成人免费真人毛片视频 | 日韩激情无码免费毛片 | 国产成人免费不卡在线观看 | 亚洲欧美国产精品 | 老司机免费福利午夜入口ae58 | 免费一级a毛片在线 | a级毛片无码免费真人 | a级国产乱理伦片在线 | 日本免费观看的视频在线 | 精品一区二区三区在线视频 | 欧美同性videos在线可播放 | 欧美激情视频一区二区免费 | 久久视频免费在线观看 | 一级一毛片a级毛片欧美 | 亚洲理论片在线观看 | 九九草在线观看 | 在线看片a| 久久久久久国产视频 | 精品国产美女福到在线不卡f | 国产精品理论 | 特级毛片a级毛免费播放 | 不卡一区二区在线 | 欧美一二三 | 亚洲国产欧美日韩 | 三级全黄的全黄三级三级播放 | 精品一区二区三区免费爱 | 亚洲黄色在线播放 | 欧美一二区 | 国内视频一区二区 | 美女黄色一级毛片 | 精品国产一区二区三区四区不 |