1、运算符:!= 和 <>在MySQL中!= 和 <> 的功能一致,在sql92规范中建议是:!=,新的规范中建议为: <>下面查询username为"陈哈哈"以外的用户,以下两条语句的作用一样。

代码语言:javascript代码运行次数:0运行复制SELECT * FROM t_user WHERE username != "陈哈哈";

SELECT * FROM t_user WHERE username <> "陈哈哈";

2、运算符:= 和 <=>值得一提的是 = 、 <=> 以及 is 这三个运算符的用法

大家都知道 is 专门用来判断是否为 NULL,而 = 则是用来判断非NULL以外的所有数据类型使用。而 <=> 则是前两者合起来。

先提供测试表数据如下:

代码语言:javascript代码运行次数:0运行复制mysql> SELECT * from t_user;

+----+-----------+----------+

| id | username | password |

+----+-----------+----------+

| 1 | 陈哈哈 | abcd1234 |

| 2 | 侨布斯 | 1234 |

| 3 | 提莫 | 1234abcd |

| 4 | aaa | NULL |

| 5 | NULL | aaaa |

+----+-----------+----------+

5 rows in set (0.00 sec)

下面两个SQL的查询结果一致,均查出了username 为 NULL的数据

代码语言:javascript代码运行次数:0运行复制mysql> SELECT * from t_user where `username` is null;

+----+----------+----------+

| id | username | password |

+----+----------+----------+

| 5 | NULL | aaaa |

+----+----------+----------+

1 row in set (0.00 sec)

mysql> SELECT * from t_user where `username` <=> null;

+----+----------+----------+

| id | username | password |

+----+----------+----------+

| 5 | NULL | aaaa |

+----+----------+----------+

1 row in set (0.00 sec)

下面两个SQL的查询结果一致,均查出了username 为 ‘陈哈哈’ 的数据

代码语言:javascript代码运行次数:0运行复制mysql> SELECT * from t_user where `username` = '陈哈哈';

+----+-----------+----------+

| id | username | password |

+----+-----------+----------+

| 1 | 陈哈哈 | abcd1234 |

+----+-----------+----------+

1 row in set (0.00 sec)

mysql> SELECT * from t_user where `username` <=> '陈哈哈';

+----+-----------+----------+

| id | username | password |

+----+-----------+----------+

| 1 | 陈哈哈 | abcd1234 |

+----+-----------+----------+

1 row in set (0.00 sec)

可见,<=>运算符相当于封装了= 和 is ,既可以判断 非NULL值,也可以用来判断NULL值。

<=> 只用于MySQL数据库,username <=> NULL 得 0 等价 username is NULL,NOT(username <=> NULL) 等价 username is NOT NULL;当col1,col2两个可能存在NULL值的列需要进行相等比较时,可以使用 col1 <=> col2,可以把null=null的也关联起来。来源:blog.csdn.net/qq_39390545