首页 > 解决方案 > 数字和字符串之间的SQL比较

问题描述

我最近在 SQL 中提出了一个有趣的结果。可能没那么有趣,但我无法处理它的内部运作方式。

发生的事情是,当我在 mysql 数据库上运行以下查询时。*

SELECT 1= 'string',0='string';

结果如下。

1= 'string'|0='string'|
-----------|----------|
          0|         1|

因此,如果有人能够解开 SQL 中产生上述结果的布尔运算的内部工作原理,将不胜感激。谢谢

PS:我运行查询的原因是,我编写的查询构建器函数返回了以下格式的查询,结果集与预期相反。

SELECT * FROM table WHERE column IS NOT NULL = 'string';

结果集包括column实际上为 NULL 的结果。(提示IS NOT NULL查询部分中的所有 0 值都与string该部分WHERE子句中的 和共同返回 true 进行比较)

标签: mysql

解决方案


推荐阅读