mysql 字串和數字比,字串會隱式轉換為數字0
在mysql中,字串和數字比,字串會被轉成數字0。
下面我演示:
mysql> create table t (a int primary key, b int,c int, d int, index idx_b_c_d (b,c,d)); Query OK, 0 rows affected (0.14 sec) mysql> insert into t values (0,0,0,0),(1,1,1,1),(2,2,2,2),(3,3,3,3); Query OK, 4 rows affected (0.00 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> select * from t; +---+------+------+------+ | a | b | c | d | +---+------+------+------+ | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | | 2 | 2 | 2 | 2 | | 3 | 3 | 3 | 3 | +---+------+------+------+ 4 rows in set (0.00 sec)
下面演示奇怪現象:
mysql> select * from t where a=1; +---+------+------+------+ | a | b | c | d | +---+------+------+------+ | 1 | 1 | 1 | 1 | +---+------+------+------+ 1 row in set (0.00 sec) mysql> select * from t where a='t'; +---+------+------+------+ | a | b | c | d | +---+------+------+------+ | 0 | 0 | 0 | 0 | +---+------+------+------+ 1 row in set, 1 warning (0.00 sec) mysql> select * from t where a='ttt'; +---+------+------+------+ | a | b | c | d | +---+------+------+------+ | 0 | 0 | 0 | 0 | +---+------+------+------+ 1 row in set, 1 warning (0.00 sec) mysql> select * from t where a='bbb'; +---+------+------+------+ | a | b | c | d | +---+------+------+------+ | 0 | 0 | 0 | 0 | +---+------+------+------+ 1 row in set, 1 warning (0.00 sec)
可以看到,where a='bbb' 能查出a=0的行,這就是因為mysql把字串bbb轉成了數字0。
透過下面可以驗證,1表示為真,0表示為假:
mysql> select 'ttt'=0; +---------+ | 'ttt'=0 | +---------+ | 1 | +---------+ 1 row in set, 1 warning (0.01 sec) mysql> select 'ttt'=1; +---------+ | 'ttt'=1 | +---------+ | 0 | +---------+ 1 row in set, 1 warning (0.00 sec) mysql> select 'bbb'=1; +---------+ | 'bbb'=1 | +---------+ | 0 | +---------+ 1 row in set, 1 warning (0.00 sec)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28916011/viewspace-2905961/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Thymeleaf將字串轉換為數字字串
- JavaScript字串轉換數字JavaScript字串
- 數字格式字串轉數字保留後面0字串
- 如何在MySQL中使用CONVERT將字串轉換為數字MySql字串
- c++中數字和字串的轉換C++字串
- c++中字元、字串和數字間的轉換C++字元字串
- Octave 數字轉字元,連線兩個字串,以及如何將字串轉換為變數名稱字元字串變數
- 字串或數字反轉字串
- {{rateTime}}大括號裡面的數字轉換為字串(日期)字串
- 判斷迴文串 字串/數字相互轉換字串
- 字串轉數字的問題字串
- javascript中將數字轉為字串的方法JavaScript字串
- 【Go】IP地址轉換:數字與字串之間高效轉換Go字串
- 將數值轉換為字串的函式字串函式
- Go 中數字轉換字串的正確姿勢Go字串
- Day7(字串)|344.反轉字串 541.反轉字串II 54.替換數字字串
- 字串與數字轉換函式 | 全方位認識 sys 系統庫字串函式
- 字串分割 提取數字字串
- PHP字串數字相加PHP字串
- 數字與字串5.5字串
- js中在將字串數字轉為數字時,使用哪種方式更安全JS字串
- 字串大小寫轉換和字串的比較字串
- PHP 將數字轉換為漢字PHP
- 前端開發入門到實戰:JavaScript字串轉換數字前端JavaScript字串
- 字串轉換整數(atoi)字串
- c++中utf8字串和gbk字串的轉換C++字串
- Golang字串解析成數字Golang字串
- js面試題-找出字串中的數字,並替換為*JS面試題字串
- java從字串中提取數字Java字串
- Python判斷字串是否為字母或者數字(浮點數)Python字串
- Python正規表示式匹配字串中的數字Python字串
- Python 轉換金額數字大寫為數字小寫Python
- PHP 字串強制轉換為數值問題PHP字串
- java判斷輸入的字串是否為數字Java字串
- PHP 阿拉伯數字和中文數字的相互轉換PHP
- 淺談MySql整型索引和字串索引失效或隱式轉換問題汊叄MySql索引字串
- 2020-11-13整數轉換為字串 字元反轉字串字元
- Python 漢字區位碼、字串 相互轉換Python字串