日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 类型 自动转化_自动MySQL数据类型转换

發布時間:2025/3/12 数据库 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 类型 自动转化_自动MySQL数据类型转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我剛剛碰到一個有趣的案例,在MySQL中進行數據類型轉換.考慮以下查詢:

SELECT * FROM (SELECT 0 AS col) AS t WHERE t.col=123; #Yields 0 rows

SELECT * FROM (SELECT 0 AS col) AS t WHERE t.col="123"; #Yields 0 rows

SELECT * FROM (SELECT 0 AS col) AS t WHERE t.col="0"; #Yields 1 row, col=0

SELECT * FROM (SELECT 0 AS col) AS t WHERE t.col="abc"; #Yields 1 row, col=0

第1、2和3行對我來說似乎很合邏輯.但是在第4行上,為什么親愛的SQL哦,為什么呢?您急切地將“ abc”強制轉換為等于0嗎?

我的意思是,我明白了-“ abc”不是整數,所以0才最有意義…在這種情況下,這種行為實際上有用嗎?據我所知,它可能會導致錯誤(就像在我們的應用程序中一樣)…

也許有一個MySQL“模式”可以為這樣的自動類型轉換啟用警告?

解決方法:

MySQL在數字上下文中對字符串進行隱式類型轉換.字符串的前導數字字符將轉換為數字,因此諸如“ abc”之類的字符串將轉換為0.

這可能非常方便,因為此轉換不會導致錯誤(顯式轉換會導致錯誤).

道理很簡單:將常量與列進行比較時,使列與列具有相同的類型.也就是說,請勿比較字符串和數字,以免發生意外情況.

標簽:casting,sql,mysql

來源: https://codeday.me/bug/20191119/2037998.html

總結

以上是生活随笔為你收集整理的mysql 类型 自动转化_自动MySQL数据类型转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。