MyBatis查詢List結果丟失(Mysql中OrderBy和limit混用導致)
最近做專案遇到持久層使用MyBatis查詢時,出現查詢的結果在log4g日誌中顯示是5條,但是在List中取出的時候只有一條的情況,SQL語句沒有問題.
問題原因:
1.首先檢查是否是多表聯查時主鍵重複了
2.值得注意的是Mysql中limit和orderBy一起用由於Mysql的優化的原因會導致查詢結果有問題
詳細見:https://blog.csdn.net/qiubabin/article/details/70135556
解決辦法:
在orderby的時候多選擇一列不影響結果的列即可
相關推薦
MyBatis查詢List結果丟失(Mysql中OrderBy和limit混用導致)
最近做專案遇到持久層使用MyBatis查詢時,出現查詢的結果在log4g日誌中顯示是5條,但是在List中取出的時候只有一條的情況,SQL語句沒有問題.問題原因: 1.首先檢查是否是多表聯查時主鍵重複了2.值得注意的是Mysql中limit和orderBy一起用由於Mys
mysql中orderby和limit同時使用的bug
我的SQL很簡單 我想從一個表中檢索所有標題含有“中國”的資料,將它們按id排序,取前5條,所以我寫了以下語句 SQL語句1: select fi_id, fi_url, fi_title from InfoTable where fi_title like '%中國%' order by fi_id des
mybatis查詢的結果集物件中包含物件和集合的用法
平時專案中使用mybatis查詢資料庫,物件結果集可能比較複雜,物件中巢狀物件或者集合。 如下圖所示,返回結果集物件project中包含其他子物件(查詢的主表與關聯子表資料一對一關係)和list集合(查詢的主表與關聯子表資料一對多關係): 解決方案: 物件下面巢狀的物件採用<
(異常查詢Empty set)mysql 中的 not in 注意事項——結果集中不能有null
注意 in 結果集有 null 不影響 not in 的結果集中出現 null 則查詢結果為 Empty set 實際應用(結果集存在有null) select t1.father_id from t_pub_link_info t1; +-
MySQL中Date和DateTime欄位與mybatis的對應關係
MySQL中Date和DateTime欄位與mybatis的對應關係 在MySQL欄位中有Date和DateTime型別,但是java中沒有DateTime型別。 解決辦法: (1)在mybatis插入資料時只要將實體的屬性設定成Timestamp就會對應mysql的DateTime型別
pvuv的程式碼開發及提交spark程式jar包執行讀取資料來源並將結果寫入MySQL中
目錄 PvUvToMysql類 ConnectionUtils類 jdbc.properties檔案 在IDEA中打jar包的兩種方式 IDEA打jar包 IDEA中maven方式打jar包 提交spark程式ja
MySQL中min和max查詢優化
MySQL max() 函式的需掃描where條件過濾後的所有行: 在測試環境中重現: 測試版本:Server version: 5.1.58-log MySQL Community Server (GPL) testtable表中的索引 mysq
【八】Spark Streaming 用foreachRDD把結果寫入Mysql中Local模式(使用Scala語言)
DStream 的foreachRDD是允許把資料傳送到外部檔案系統中。然而使用不當會導致各種問題。 錯誤示範1:在driver建立連線,在woker使用。會報錯connection object not serializable。 錯誤示範2:rdd每個記錄都建立連
mysql中replicate_wild_do_table和replicate_do_db區別
lan rep cati mil 多人 pan think lte 避免 使用replicate_do_db和replicate_ignore_db時有一個隱患,跨庫更新時會出錯。 如在Master(主)服務器上設置 replicate_do_db=test(my.conf
MySQL中TIMESTAMPDIFF和TIMESTAMPADD函數的用法
用法 int blog 函數 mysq second row logs tail TIMESTAMPDIFF 語法: TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)。 說明: 返回日期或日期時間表達式date
mysql中varchar和char區別(思維導圖整理)
var 但是 系統 mysql 由於 varchar .html nbsp 了解 由於mysql一直是我的弱項(其實各方面我都是很弱的),所以最近在看msyql,正好看到varchar和char區別,所以整理一下,便於以後遺忘。 0.0圖片已經說明一切,但是系
mysql中LOCATE和CASE WHEN...THEN...ELSE...END結合用法
else case put asdf span 項目 oos bstr col 之前項目中需要寫一個sql,就是查出某個調研詳情中,選A答案,B答案,C答案...F答案的人各有多少人,這個sql也是費了很大的力氣才寫出來,故記下來,方便以後使用。 其中tbl_researc
mysql 中delete和trncate區別
重新 sql delet use 它的 刪除 掃描 進行 from mysql中刪除表記錄delete from和truncate table的用法區別: MySQL中有兩種刪除表中記錄的方法:(1)delete from語句,(2)truncate table語句。 d
mysql中字符集和排序規則說明
存儲 blog character 語言 general utf 比較 說明 target 數據庫需要適應各種語言和字符就需要支持不同的字符集(Character Set),每種字符集也有各自的排序規則(Collation)。 一.字符集 字符集,即用於定義字
mysql中concat 和 group_concat()的用法
sub concat order by 返回 int 連接 插入 sep 結果 一、CONCAT()函數CONCAT()函數用於將多個字符串連接成一個字符串。使用數據表Info作為示例,其中SELECT id,name FROM info LIMIT 1;的返回結果為+--
Mysql中datetime和timestamp區別
sta mysql -m 時區 日期 timestamp 適應 tex 區別 DATETIME日期和時間的組合。支持的範圍是‘1000-01-01 00:00:00‘到‘9999-12-31 23:59:59‘。MySQL以‘YYYY-MM-DD HH:MM:SS‘格式顯示
mysql中now和sysdate的區別
mysql now和sysdatemysql 中now獲取的是sql執行的時間,sysdate獲取的是系統時間在master 和slave 主從過程中會導致時間的不一致導致報錯例如:Unsafe statement written to the binary log using statement form
淺談Mysql中where和having的區別
where和having的區別一、誤區:不要錯誤的認為having和group by 必須配合使用.二、where和having用法解析:1、 where和having都可以使用的場景: select goods_price,goods_name from goods where goods_price &g
Mysql中union和union all的用法及區別
employee rom 最終 sel 推薦 china carte 區別 column UNION 用於合並兩個或多個 SELECT 語句的結果集,並消去表中任何重復行。UNION 內部的 SELECT 語句必須擁有相同數量的列,列也必須擁有相似的數據類型。同時,每條 S
mysql 中in和exists的區別
有兩張表:student 和 studentcource student 表 studentcource 表 需求:查詢所有成績小宇60分的同學 in 原理: 1、先查詢 <60 學生得到student_id列表 select student_id