1. 程式人生 > 其它 >mysql轉換型別、型別轉換、查詢結果型別轉換

mysql轉換型別、型別轉換、查詢結果型別轉換

  一、問題來源

          資料庫一張表的主鍵id設為了自增,那就是int型的,但是其他表的關聯欄位又設定成了字串!

         而且已經開發了很久才發現問題,既然出現了問題肯定需要解決

       如圖

    

     很明顯id是不一樣的,花了點時間查詢相關資料

    mysql的查詢機制 ,當兩邊的型別不一致時會有隱式轉型(當然這個是不靠譜的),會自動從左往右第一個字母開始轉為0相加,

   於是這條sql就變成了

   select  * from tb_line_new WHERE  id = 9+0+0+0+0+0、、、、、;

  二、網上很多人指出了問題 ,但是沒有給出解決方案,這很可恥,也很浪費別人的時間,特別鄙視那些、、、、、、

         mysql存在兩個轉型的函式

        CAST(欄位名  as  需要轉換的型別 )

        CONVERT(欄位名,需要轉換的型別)。

        支援轉型的型別:  

二進位制,同帶binary字首的效果 : BINARY    
字元型,可帶引數 : CHAR()     
日期 : DATE     
時間: TIME     
日期時間型 : DATETIME     
浮點數 : DECIMAL      
整數 : SIGNED     
無符號整數 : UNSIGNED 

       再次查詢結果正常