MySQL数据库:SQL语句中不可省去的引号_MySQL
Jun 01, 2016 pm 01:30 PM
mysql
資料庫
bitsCN.com
MySQL数据库:SQL语句中不可省去的引号
有一次在代码中发现了一个BUG,在排查过程中,差点晕翻;作一个DBA也碰到这种低级错误;大为自嘲。其实这个问题在官方手册里就写得很明白;(可见官方文档的重要性)
mysql > create table h1 (id int , col1 char ( 1 ));Query OK, 0 rows affected ( 0.00 sec)mysql > insert into h1 select 1 ,’I ' ;Query OK, 1 row affected (0.00 sec)Records: 1 Duplicates: 0 Warnings: 0mysql> insert into h1 select 2,’F ' ;Query OK, 1 row affected ( 0.00 sec)Records: 1 Duplicates: 0 Warnings: 0 mysql > insert into h1 select 2 ,’ 0 ′;Query OK, 1 row affected ( 0.00 sec)Records: 1 Duplicates: 0 Warnings: 0mysql > select * from h1 ;+ —— + —— + | id | col1 | + —— + —— + | 1 | I | | 2 | F | | 2 | 0 | + —— + —— + 3 rows in set ( 0.00 sec)mysql > select * from h1 where col1 = 0 ;+ —— + —— + | id | col1 | + —— + —— + | 1 | I | | 2 | F | | 2 | 0 | + —— + —— + 3 rows in set , 2 warnings ( 0.00 sec)mysql > select * from h1 where col1 = ’ 0 ′;+ —— + —— + | id | col1 | + —— + —— + | 2 | 0 | + —— + —— + 1 row in set ( 0.00 sec)mysql > select * from h1 where col1 = ’ 1 ′;Empty set ( 0.00 sec)mysql > select * from h1 where col1 = 1 ;Empty set , 2 warnings ( 0.00 sec)
登入後複製
发现没有:
col1=0 ; 所有行被选中;
col1=’0′ ; 结果集正常
mysql > select * from h1 where col1 = ’ 1 ′;Empty set ( 0.00 sec)mysql > select * from h1 where col1 = 1 ;Empty set , 2 warnings ( 0.00 sec)
登入後複製
想知道为什么吗?
看这里.
mysql > show warnings;+ ——— + —— + ————————————— + | Level | Code | Message | + ——— + —— + ————————————— + | Warning | 1292 | Truncated incorrect DOUBLE value: ‘I’ | | Warning | 1292 | Truncated incorrect DOUBLE value: ‘F’ | + ——— + —— + ————————————— + 2 rows in set ( 0.00 sec)
登入後複製
MySQL当数据类型不匹配时,尊重用户的输入,将字段的类型做了隐式转换然后来匹配,而字符向数字转,结果都是0;
bitsCN.com本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
兩個點博物館:邦格荒地地點指南
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
兩個點博物館:邦格荒地地點指南
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

如何修復 MySQL 8.4 上的 mysql_native_password 未載入錯誤
