💝💝💝歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內容和知識,也可以暢所欲言、分享您的想法和見解。
- 推薦:kwan 的首頁,持續學習,不斷總結,共同進步,活到老學到老
- 導航
- 檀越劍指大廠系列:全面總結 java 核心技術,jvm,并發編程 redis,kafka,Spring,微服務等
- 常用開發工具系列:常用的開發工具,IDEA,Mac,Alfred,Git,typora 等
- 數據庫系列:詳細總結了常用數據庫 mysql 技術點,以及工作中遇到的 mysql 問題等
- 新空間代碼工作室:提供各種軟件服務,承接各種畢業設計,畢業論文等
- 懶人運維系列:總結好用的命令,解放雙手不香嗎?能用一個命令完成絕不用兩個操作
- 數據結構與算法系列:總結數據結構和算法,不同類型針對性訓練,提升編程思維,劍指大廠
非常期待和您一起在這個小小的網絡世界里共同探索、學習和成長。💝💝💝 ?? 歡迎訂閱本專欄 ??
博客目錄
- 一.現象背景
- 1.SQL
- 2.id 數據類型
- 3.等價 SQL
- 二.隱式轉換場景
- 1.字符串和數字混合比較
- 2.字符串到數字的插入
- 3.數字到字符串的插入
- 4.函數參數
- 5.ORDER BY 或 GROUP BY 子句
- 6.CASE WHEN 語句
- 7.JOIN 操作
- 8.默認值
一.現象背景
1.SQL
select * from `app-cloud`.cl_sation where id = "082f660d-e1d3-4a36-bcd8-e8494f52e0eb";
2.id 數據類型
`id` int NOT NULL AUTO_INCREMENT,
3.等價 SQL
select * from `app-cloud`.cl_sation where id = 082;
二.隱式轉換場景
在 MySQL 中,隱式類型轉換通常發生在以下幾種場景:
1.字符串和數字混合比較
字符串和數字混合比較:當你試圖將字符串與數字進行比較時,MySQL 會嘗試將字符串轉換為數字。例如:
SELECT * FROM table WHERE column = '123';
如果column
是一個數字類型,MySQL 會嘗試將字符串'123'
轉換為數字 123。
2.字符串到數字的插入
字符串到數字的插入:當你嘗試將字符串插入到一個數字類型的列時,MySQL 會嘗試將字符串轉換為相應的數字類型。
INSERT INTO table (column) VALUES ('456');
如果column
是一個數字類型,MySQL 會將字符串'456'
轉換為數字 456。
3.數字到字符串的插入
數字到字符串的插入:相反,如果你嘗試將數字插入到一個字符串類型的列中,MySQL 也會進行隱式轉換。
INSERT INTO table (column) VALUES (789);
如果column
是一個字符串類型,MySQL 會將數字 789 轉換為字符串'789'
。
4.函數參數
函數參數:在調用某些函數時,如果參數的數據類型與函數期望的類型不匹配,MySQL 可能會嘗試進行隱式轉換。
SELECT DATE_ADD('2021-01-01', INTERVAL '1' DAY);
在這個例子中,INTERVAL
期望數字類型的參數,但提供了字符串,MySQL 會嘗試將其轉換為數字。
5.ORDER BY 或 GROUP BY 子句
ORDER BY 或 GROUP BY 子句:在使用ORDER BY
或GROUP BY
子句時,如果列的類型與排序/分組表達式中的類型不匹配,MySQL 可能會進行隱式轉換。
SELECT column FROM table ORDER BY 'column';
如果column
是字符串類型,而排序表達式是字符串字面量,MySQL 會嘗試將列值轉換為字符串進行排序。
6.CASE WHEN 語句
CASE WHEN 語句:在使用CASE WHEN
語句時,如果條件表達式的數據類型與比較值的數據類型不匹配,MySQL 會嘗試進行隱式轉換。
SELECT column FROM table WHERE column = CASE WHEN condition THEN 'value' ELSE 0 END;
7.JOIN 操作
JOIN 操作:在執行 JOIN 操作時,如果連接條件中的列數據類型不匹配,MySQL 可能會嘗試進行隱式轉換以滿足條件。
8.默認值
默認值:當列的默認值是字符串,而插入數據時沒有提供該列的值,MySQL 會嘗試將字符串默認值轉換為列的數據類型。
隱式類型轉換是 MySQL 提供的一種靈活性,允許在不同數據類型之間進行操作,但這也可能導致不可預見的結果,特別是當轉換不是按照預期進行時。因此,了解和控制數據類型的轉換對于編寫可靠和高效的 SQL 查詢非常重要。
覺得有用的話點個贊
👍🏻
唄。
??????本人水平有限,如有紕漏,歡迎各位大佬評論批評指正!😄😄😄💘💘💘如果覺得這篇文對你有幫助的話,也請給個點贊、收藏下吧,非常感謝!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且長,行則將至,讓我們一起加油吧!🌙🌙🌙