vlambda博客
学习文章列表

MySQL之-查询操作常常遇到的坑

MySQL的select条件查询操作,使用语法select 列名 from 表名 where 列 运算符 值where关键字后可跟一个或多个条件,来过滤记录,将满足条件的记录返回。除去常用查询运算符,在具体的使用过程中会有部分需要注意的地方或可能遇到的问题。

  • 条件查询-不等于<>、!=

    注:<>是最早的用法。!=是后来加上的。两种写法的意义相同,<>的可移植性更好,如为了更好的照顾不同版本移植性,SQL语句中可尽量使用<>

  • NULL值查询

    对应null值的查询需要用到专门的条件:is null 或 is not  null。其他的条件查询会忽略null值。如:select * from user where name like '%'如果name有null值的情况,则无法查询出相应的数据。

    注:查询运算符likebetween andinnot in对null值查询不起作用。

  • <=>安全等于

    <=>可以查询null值如:select * from user where name <=> null

  • like

    select * from user;

    select * from user where name like '%';

    以上两个SQL查询的结果是什么?

    结果分两种情况:

    1、如果name没有null值,则两个SQL的查询结果相同。

    2、如果name有null值,则sql2会忽略name为null的数据记录。

总结:

  • null值查询需要使用is null或is not null查询,其他的查询运算符对null值无效。

  • 建表时,尽量设置表的字段不为null,给字段一个默认值。

  • <=>安全等于可读性比较差,玩玩就好建议少使用。