zoukankan      html  css  js  c++  java
  • mysql那些事(6) WHERE条件 字符串的引号

    前言:所谓的坑,两个意思,一个是软件本身的bug,一个是使用者常犯的错误。

    phper在日常开发中经常和mysql打交道。特别是在没有分层的中小应用中,phper开发要关注sql语句的实现。

    mysql那些事(1) WHERE条件 字符串的引号

    入正题,上建表语句:

    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在路上');

    好了,看到的是这张表:

    mysql那些事(1) WHERE条件 字符串的引号

    题目来了:请查找name值为0的数据。

    于是错误的sql出来了:

    select `id`,`name` from test_sql where name=0

    结果与预期不符,如下图:

    mysql那些事(1) WHERE条件 字符串的引号

    为什么?

    sql也是弱类型啊,比较0和字符串的时候,也是返回true的。

    正确的sql:

    select `id`,`name` from test_sql where name=‘0'

    mysql那些事(1) WHERE条件 字符串的引号

    结论:字符类型的字段做where 条件时一定要加引号呀。

  • 相关阅读:
    SELFJOIN
    lLinux编程大全
    一个基础但是隐晦的c++语法问题
    cocos2dx内存优化
    iOS和android游戏纹理优化和内存优化(cocos2dx)
    STL学习小结
    C++11
    游戏资源打包
    C++ '__FILE__' and '__LINE__
    Cocos2dx纹理优化的一些方案
  • 原文地址:https://www.cnblogs.com/phpfensi/p/8143333.html
Copyright © 2011-2022 走看看