亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

mysql - mybatis select語句問題

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

問題描述

消息提醒續(xù),這個消息可能是別人直接回復(fù)了你的文章,這時需要進(jìn)行數(shù)據(jù)庫操作關(guān)聯(lián)文章表獲取相應(yīng)文章的內(nèi)容【消息提醒:您的文章xxx有了新的回復(fù)】,也可能是別人回復(fù)了你的評論這時關(guān)聯(lián)的就是評論表來獲取評論的內(nèi)容【消息提醒:您的評論xxx有了新的回復(fù)】,消息點擊后即可出現(xiàn)顯示詳情這樣子。

數(shù)據(jù)庫表結(jié)構(gòu)如下

mysql - mybatis select語句問題

mbelongbid為消息所屬的文章的id,mbelongcid為消息所屬的評論的id。當(dāng)mbelongcid為空時說明消息是直接回復(fù)文章,此時關(guān)聯(lián)的是文章表;當(dāng)mbelongcid不為空時說明消息回復(fù)的對象是某一條評論,此時關(guān)聯(lián)的是評論表。

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

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>

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

問題解答

回答1:

mbelongcid不是你傳入的參數(shù)的一部分,所以mybatis并不知道它到底是不是null!,你要實現(xiàn)你想要的這種邏輯應(yīng)該從數(shù)據(jù)庫端去著手,比如創(chuàng)建一個視圖,這個視圖由兩個查詢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

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

數(shù)據(jù)表誰設(shè)計的?扣工資 至少要加個下劃線啊m_belong_cid,學(xué)生黨,慢慢來吧。

回答2:

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

回答3:

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

mysql - mybatis select語句問題

mysql - mybatis select語句問題

message類如下:

mysql - mybatis select語句問題

相關(guān)文章:
主站蜘蛛池模板: 91嫩草国产线免费观看 | 伊人久久国产精品 | 网站在线观看高清免费 | 亚洲精品乱码久久久久久蜜桃欧美 | 婷婷国产成人久久精品激情 | 在线免费观看黄色大片 | 欧美日韩国产最新一区二区 | 一级毛片www| 国产1区2区3区 | 国产成人精品在视频 | 久久久日韩精品国产成人 | 久久se精品一区二区国产 | 韩国免费毛片在线看 | 黄视频免费观看 | 久久99国产精品久久欧美 | 日韩经典视频 | 114一级毛片免费 | 日韩亚洲制服丝袜中文字幕 | 99久久亚洲国产高清观看 | 真人特级毛片免费视频 | 国产精品va在线观看一 | 激情视频在线观看网站 | 亚洲黄色性视频 | 色网综合 | 免费的黄色小视频 | 国产成人深夜福利在线观看 | 在线国产你懂的 | 在线 欧美 | 久久精品国产自在一线 | 久久久免费观成人影院 | 日韩高清在线亚洲专区vr | 黄色大片网站 | 九九精品免费 | 麻豆免费入口 | 亚洲免费观看视频 | 国产精品福利网站 | 亚洲精品国产高清不卡在线 | 538porm在线看国产亚洲 | 欧美日韩亚洲国产综合 | 国产成人a一区二区 | 国产大学生露脸激情 |