MySQL 条件相反

标签 mysql sql select logical-operators

我知道在其他语言中,您可以使用某些东西(通常是 !)来表示后面任何内容的相反内容。有没有办法在 MySQL 中做这样的事情?

例如,我有以下查询来选择所有不为空或空白的内容:

select * from `invoices` where `Notes`>'';

但是有没有办法做到相反的事情呢?因为目前我只知道你可以重写这样的查询

select * from `invoices` where ifnull(`Notes`,'')='';

但这消除了在 Notes 列上建立索引的机会,或者以这种方式

select * from `invoices` where (`Notes` is null or `Notes`=''); 

但是那个比类似的东西长很多

select * from `invoices` where !`Notes`>'';

这将是理想的。

最佳答案

SQL 有一个 not 运算符:

SELECT * FROM `invoices` WHERE NOT (`Notes`>'');
-- Here -----------------------^

关于MySQL 条件相反,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37614530/

相关文章:

mysql - 数据库用户权限修改后如何恢复?

php - 即使没有结果,也会在单个 MySql 表中返回所有日期的数据

html - 是否有提交空选择倍数的标准客户端行为?

php - mysql从两个表和不同结构中选择数据

mysql - 如何从结果查询中排除第一行?

MYSQL SELECT 在同一表上的 SELECT 中

mysql - MySQL 中的单行表

mysql - 如何关闭 MySQL 中的现有连接

sql - 从 SQL 中的字符串中提取子字符串

不同行中两个日期之间的 SQL 持续时间