国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

mybatis Result Maps對結果分組3--一對多使用limit

2019-11-15 00:58:41
字體:
來源:轉載
供稿:網友
mybatis Result Maps對結果分組3--一對多使用limit

轉載請注明:TheViperhttp://m.survivalescaperooms.com/TheViper

前面兩篇文章都是先把多張表的結果一并取出,然后用mybatis自動分組,實現一對多的結果集。但是,實際開發過程中,是需要對評論分頁的,比如在MySQL中使用limit.

SELECT articlecomment.articlecomment_id,articlecomment.commenttime,articlecomment.commentcontent,articlecomment.id as commentuser_id,articlereply.articlereply_id,articlereply.replytime,articlereply.replycontent,articlereply.id as replyuser_id,u1.name AS comment_user,u2.name AS reply_user FROM articlecomment LEFT JOIN articlereply ON articlereply.comment_id=articlecomment.articlecomment_id INNER JOIN USER AS u1 ON u1.id=articlecomment.id INNER JOIN USER AS u2 ON u2.id=articlereply.id ORDER BY commenttime DESC,replytime DESC 

可以看到評論id為1和2的評論都有3條回復,這時對評論分頁直接用limit,比如limit 2,就取不到評論id為1的評論,然后mybatis自動分組后就只有一條評論。

解決方法是外面不用limit,在where條件中,對articlecomment_id使用in子查詢,在in子查詢里面用limit,取出指定limit的滿足條件還沒有外連接的評論的articlecomment_id。

表數據

        SELECT articlecomment.articlecomment_id,articlecomment.commenttime,articlecomment.commentcontent,articlecomment.id AS commentuser_id        ,articlereply.articlereply_id,articlereply.replytime,articlereply.replycontent,articlereply.id AS replyuser_id        ,u1.name AS comment_user,u2.name AS reply_user FROM articlecomment         LEFT JOIN articlereply ON articlereply.comment_id=articlecomment.articlecomment_id INNER JOIN USER AS u1 ON u1.id=articlecomment.id         LEFT JOIN USER AS u2 ON u2.id=articlereply.id WHERE articlecomment.articlecomment_id IN(SELECT articlecomment1.articlecomment_id         FROM articlecomment AS articlecomment1 WHERE articlecomment1.article_id=1 ORDER BY articlecomment1.articlecomment_id DESC LIMIT 2        ) ORDER BY articlecomment.articlecomment_id DESC,replytime DESC

這時會顯示錯誤,This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'。

很容易搜到鳥哥的這篇MySQL也真是讓人郁悶(關于子查詢中使用limit)。在外面加一層就可以了。

        SELECT articlecomment.articlecomment_id,articlecomment.commenttime,articlecomment.commentcontent,articlecomment.id AS commentuser_id        ,articlereply.articlereply_id,articlereply.replytime,articlereply.replycontent,articlereply.id AS replyuser_id        ,u1.name AS comment_user,u2.name AS reply_user FROM articlecomment         LEFT JOIN articlereply ON articlereply.comment_id=articlecomment.articlecomment_id INNER JOIN USER AS u1 ON u1.id=articlecomment.id         LEFT JOIN USER AS u2 ON u2.id=articlereply.id WHERE articlecomment.articlecomment_id IN(SELECT articlecomment1.articlecomment_id         FROM (SELECT * FROM articlecomment AS articlecomment2 WHERE articlecomment2.article_id=1 ORDER BY articlecomment2.articlecomment_id DESC LIMIT 2)         AS articlecomment1 ) ORDER BY articlecomment.articlecomment_id DESC,replytime DESC


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辽中县| 德钦县| 广西| 彭水| 连平县| 青州市| 青田县| 泗洪县| 阳西县| 泰顺县| 邵阳县| 万州区| 丹江口市| 丹棱县| 年辖:市辖区| 视频| 楚雄市| 铜山县| 德格县| 吴桥县| 潼南县| 巴塘县| 沾益县| 静海县| 湖口县| 资源县| 布拖县| 卢氏县| 孟津县| 徐闻县| 岳池县| 灌南县| 永川市| 高淳县| 武胜县| 乐至县| 延津县| 舞阳县| 凤城市| 梅河口市| 临邑县|