所以我试着从这个表中做一个select语句:
+--------+-------+--------+
| LETTER | COLOR | NUMBER |
+--------+-------+--------+
| A | red | 1 |
| B | red | 2 |
| A | black | 3 |
| C | red | 4 |
| B | black | 5 |
| D | red | 6 |
| E | red | 7 |
| C | black | 8 |
| C | black | 9 |
| C | red | 10 |
+--------+-------+--------+
基本上,我想做一个“select*”,但是跳过字母是c,颜色是“black”的行。
换句话说,select的结果将是除倒数第二行以外的整个表。
我该如何构造这个语句?
2条答案
按热度按时间af7jpaap1#
最直接的方法是使用
NOT
操作员:请注意,我们将条件括在parens中,这样就不适用于整个条件的结果。
但这并不能解释列中可能存在的空值
letter
或者color
.为了更精确地匹配规范(我们没有关于是否允许空值的信息),我们可以使用mysql空安全比较
<=>
(宇宙飞船)代替等式的运算符=
比较运算符。否定
AND
帕伦斯内部的操作员将是一个OR
,所以我们也可以这样写:如果我们想利用不等式比较算子(
<>
),我们不需要使用NOT
操作员。。。ogsagwnx2#
选择*from tablename where not letter='c'and not color='black'