程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql版本升級引發的問題

mysql版本升級引發的問題

編輯:MySQL綜合教程

mysql版本升級引發的問題   問題描述: 1.  ibatis 中 mysql語句  Java代碼        <select id="getQids" parameterClass="int" resultClass="hashMap">           SELECT d.qid,GROUP_CONCAT(epq.qid) qids           FROM table1 d,table2 epq            WHERE d.qid=#qid#           AND   d.pid=epq.pid           GROUP BY d.checkPid           LIMIT 1   </select>     2. service層代碼  Java代碼   Map<String,Object> tempMap = dao.getQids(qid);   if(tempMap != null){       byte[] arr = (byte[])tempMap.get("qids");       String tempQids = new String(arr);       tempMap.put("qids", tempQids);       this.qids.add(tempMap);   }        3.  在測試服務器上測試時,發現一直報2中刷紅部分一直報 類型轉換錯誤   4.  采用了N種辦法       (1) 本地與svn代碼       (2) 對比 測試 與 正式的代碼        (3) 對比測試與正式數據的差異性 實在找不到原因         (4) 開始懷疑 mysql驅動       (5) mysql數據庫版本        最終竟然 鎖定在mysql數據庫版本        由於數據庫(測試庫) 上個月剛采用了 mysql 5.5 ,而正式上還沒有發布,仍舊采用的mysql 5.1,真正原因。   如下原因: 當你用group_concat的時候請注意,連接起來的字段如果是int型,一定要轉換成char再拼起來, 否則在你執行後(ExecuteScalar或者其它任何執行SQL返回結果的方法)返回的將不是一個逗號隔開的串, 而是byte[]。 該問題當你在SQLyog等一些工具中是體現不出來的,所以很難發現。 select group_concat(ipaddress) from t_ip 返回逗號隔開的串 select group_concat(id) from t_ip 返回byte[] select group_concat(CAST(id as char)) from t_dep 返回逗號隔開的串 select group_concat(Convert(id , char)) from t_dep 返回逗號隔開的串

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved