MySQL IN 条件获取始终为 false 条件的结果

标签 mysql

我需要一个条件,当与 IN 条件一起使用时,它不会返回任何结果。我最初认为这会起作用,但它仍然返回结果:

SELECT * FROM MyTable WHERE myColumn IN (SELECT FALSE FROM dual WHERE FALSE);

我可以在 IN 条件中加入一个条件,让它始终不返回任何结果吗?

注意:这是在 PHP 函数中使用的,其中列可以是具有任何值的任何类型。

最佳答案

使用 null 而不是 false。当 null 出现在一个表达式中时,它总是导致一个整体的 null 值(有一些异常(exception),比如 is null 但不是这个in 的上下文):

... in (select null from dual where null)

关于MySQL IN 条件获取始终为 false 条件的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38061175/

相关文章:

mysql - 单列表的主键数据类型

mysql - 选择最近的 MAX() 和 MIN() - WebSQL

mysql - 在 AWS RDS 上混合使用 MyISAM 和 InnoDB 的问题

mysql - 事件记录何时真正插入数据库

php - FPDF/PHP : Footer page is display at the bottom of the next page (Blank page)

php - 简单计划 - 模式数据库

MYSQL:选择不包含特定日期的项目

php - 如何将配置数据存储或结构化到 MySQL - Php, MySQL

java - 语句执行查询异常

mysql - 从电话号码中删除特殊字符并进行比较