MySQL 中 WHERE 字段 条件为何过滤掉字母和 0 开头的记录?

MySQL 中 WHERE 字段 条件为何过滤掉字母和 0 开头的记录?

mysql中where字段条件的疑惑

疑惑:在SQL中,使用where 这种形式的条件,能够查询出数字开头的部分数据,但会过滤掉字母和0开头的。这是为何?

解答:

MySQL的where条件可以使用任何函数或操作符,但不能使用聚合函数。本例中,字段本身被视为一个表达式,该表达式的值能转为true时条件成立。

MySQL文档指出,“如果没有WHERE子句,该语句会选择所有的记录”。因此,where 实际上是WHERE IS NOT NULL,即字段不为空。

只有数字开头的字段值在转换为真值时才为true,而字母和0开头的字段值无法转换成真值,因此被过滤掉了。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享