mysql版本公升級引發的問題

2021-09-01 17:31:13 字數 1129 閱讀 1472

問題描述:

1.  ibatis 中 mysql語句 

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

2. service層** 

maptempmap = dao.getqids(qid);

if(tempmap != null)

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 返回逗號隔開的串

總結:

mysql 5.1版本 仍然 採用上面刷紅的部分,但mysql 5.5,已經修復了這個bug.

mysql版本公升級問題處理

之前是5.5的版本,因為要用到set optimizer trace enabled on 這個引數是5.6後才有的。所以公升級mysql 安裝新的mysql5.6 1 解壓官網的壓縮包後,修改my.ini檔案 沒有就新增 資料目錄對應修改mysql安裝目錄 client port 3306 def...

mysql版本公升級命令 mysql版本公升級

版本公升級 mysql版本很多,有5.5,5.6,5.7都可能,有時候我們的目的是公升級資料庫版本.公升級的方法有兩種,第一種就是用mysqldump方式來操作,因為匯出來就是sql語句,所以直接導進去新庫就是公升級了。例如 在舊庫匯出 mysqldump uroot p h10.0.2.4 p33...

公升級mysql版本 mysql版本手動公升級

步驟 0x00 備份原來 phpstudy 中 mysql 安裝目錄 0x01 basedir d phpstudy mysql datadir d phpstudy mysql data 0x02 把 mysql 安裝路徑新增至系統環境變數 過程 計算機 系統屬性 高階系統配置 環境變數 選擇pa...