問題描述:
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...