關於mysql字元和數字型別轉換的問題研究
關於mysql字元和數字型別轉換的問題研究
今天晚上臨近下班,被問到一個sql的問題,特此記錄,作為提升:
關於字元和數字型別轉換的問題。
看幾種情況:
1.
SELECT '10' - 2 ;
結果:
2.
SELECT 10 > 2;
3.
SELECT '10' > 2;
4.
SELECT '10' > 20;
5.
SELECT
CASE
WHEN '10' > '2'+0 THEN
'判斷條件為真'
ELSE
'判斷條件為假'
END;
6.
SELECT
CASE
WHEN '10' > '2'THEN
'判斷條件為真'
ELSE
'判斷條件為假'
END;
SELECT '10' - '2a';
8.
SELECT '10' > '2a' + 0;
9.
SELECT '10b' > 'y';
10.
SELECT 'a' < 'b';
11.
SELECT 'a' < 'b' + 0;
12.
SELECT 'b' - 'a';
13.
SELECT '10a' - '11c';
搜了一些部落格:
說是:
兩個字串:
做運算,是按照物件開頭的數字進行的
SELECT 10 - '2a121';
SELECT 'a' - 1;
純字母開頭數字是0;
SELECT 'abc' < 'b';
一個數字,一個是字串呢?
SELECT '3a' > 1;
SELECT '3a' > 4;
一旦有數字,情況又不一樣了,它開始按照開頭數字比較
SELECT '10' >'2a';
SELECT '10' > '2a' +0;
這裡應該是,先進行了 2+0 = 2,然後,進行了純數字比較,10>2
歸納:
比較大小:
a | b | 規則 |
---|---|---|
字串 | 字串 | 按位比較 |
字串 | 數字 | 按照物件開頭數字 |
字串 | 字串+數字 | 按照物件開頭數字 |
加減等
a | b | 規則 |
---|---|---|
字串 | 字串 | 物件開頭的數字,沒有數字,按0算 |
字串 | 數字 | 按照物件開頭的數字 |
字串 | 字串+數字 | 按照物件開頭的數字 |
也就是說,只要+0可以讓不管比較大小,還是運算,按照擷取開頭數字,再來進行操作。
相關文章
- Java下數字型別的轉換 (轉)Java型別
- java中數字型別轉換Java型別
- 關於Ibatis 轉換 oracle date型別的問題BATOracle型別
- mysql中的(字元)轉換函式以及排序問題。MySql字元函式排序
- 數字型別的不正確轉換漏洞型別
- 救命,關於類轉換問題
- PHP資料型別轉換(字元轉數字,數字轉字元)PHP資料型別字元
- 利用符號進行的型別轉換,轉換成數字型別 ~~符號型別
- 關於JS的編碼轉換問題JS
- 關於過濾字元的問題字元
- 關於直方圖中關於字元型別的ENDPOINT_VALUE欄位的轉換直方圖字元型別
- 字串:怎樣轉換字串為數字型別? (轉)字串型別
- Oracle學習系列—關於字元數字混合排序和中文排序的問題Oracle字元排序
- 關於時間轉換 SimpleDateFormat 的使用的問題ORM
- 字串:怎樣將數字型別轉換為字串 (轉)字串型別
- 關於long型別的轉換型別
- 字元型別轉換字元型別
- 關於int型別數值的運算問題型別
- mysql隱式轉換問題MySql
- 關於mysql和jsp的中文問題~謝謝MySqlJS
- cgo 型別轉換問題??Go型別
- 日期型別轉換問題型別
- 關於mysql連線的問題MySql
- 數值轉換為字元字元
- 關於字串中取相同的字元問題(小學題)字串字元
- 【Mysql】關於mysql存入emoji表情的問題MySql
- c++中字元、字串和數字間的轉換C++字元字串
- 關於網頁字型(轉)網頁
- 【Mysql 學習】數值型別轉換MySql型別
- 關於Application型別的變數一些問題。APP型別變數
- 關於mysql5.6 的排序問題.MySql排序
- CAPL指令碼中常用到的資料型別轉換——數字型別(int/double)和字串型別(char array)指令碼資料型別字串
- 從Access轉到MySql以後遇到的關於null問題MySqlNull
- 關於Mysql 4.1語言問題的完美解決方法(轉)MySql
- 關於在textarea中輸入回車換行和空格字元的正常顯示 (轉)字元
- 關於SQLServer中的字元儲存的問題的測試SQLServer字元
- 陣列和列表的轉換問題陣列
- 關於sqlite的特殊字元轉義SQLite字元