mysql那些事(6) WHERE条件 字符串的引号
前言:所謂的坑,兩個意思,一個是軟件本身的bug,一個是使用者常犯的錯誤。
phper在日常開發中經常和mysql打交道。特別是在沒有分層的中小應用中,phper開發要關注sql語句的實現。
入正題,上建表語句:
DROP TABLE IF EXISTS `test_sql`;
CREATE TABLE `test_sql` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
`name` varchar(32) NOT NULL DEFAULT '0' COMMENT '名字',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='測試表';
上數據:
INSERT INTO `test_sql`
VALUES
('1', '0'),
('2', 'www.haodaquan.com'),
('3', '0'),
('4', '123'),
('5', '123php'),
('6', '123php在路上'),
('7', 'php在路上');
好了,看到的是這張表:
題目來了:請查找name值為0的數據。
于是錯誤的sql出來了:
select `id`,`name` from test_sql where name=0
結果與預期不符,如下圖:
為什么?
sql也是弱類型啊,比較0和字符串的時候,也是返回true的。
正確的sql:
select `id`,`name` from test_sql where name=‘0'
結論:字符類型的字段做where 條件時一定要加引號呀。
轉載于:https://www.cnblogs.com/phpfensi/p/8143333.html
總結
以上是生活随笔為你收集整理的mysql那些事(6) WHERE条件 字符串的引号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我对组件components 和 页面
- 下一篇: 使用MATLAB进行二次规划求解最优值