作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我注意到 MySQL 中有一些奇怪的东西,我想看看为什么它会这样,是否有办法改变它?
场景
我的帐户 InnoDB 表包含以下列 id, name, type
,其中类型可以为 null。
现在,假设我有 10 条记录类型 = "TEST"和 100 条记录 type IS NULL
和 20 条记录类型 = "STANDARD"
如果我运行这个查询
SELECT * FROM accounts WHERE type <> "TEST"
此查询只会向我显示 type = "STANDARD"的 20 条记录,它会忽略 100 条具有空值的记录。
要解决这个问题,我必须做这样的事情
SELECT * FROM accounts WHERE IFNULL(type,"") <> "TEST"
或
SELECT * FROM accounts WHERE (type <> "TEST" OR type IS NULL)
NULL 值表示空白“又名无值”,无值表示 <>“测试”
这可能是预期的行为,但我不确定为什么会这样设计
最佳答案
SELECT * FROM accounts WHERE type <> "TEST"
这句话的意思是,
“从帐户中选择列类型的值不等于‘TEST’的行”。
这意味着 mysql 返回类型值不等于“TEST”的记录。
这里,由于NULL表示没有值,所以不返回type列没有任何值的记录。
关于mysql - 为什么MySQL在查找不等于时会忽略空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26741894/
我创建了一个分支来开发新功能。由于这个新功能完全是作为一个新项目开发的,唯一可能的冲突来源是解决方案文件。 随着功能的开发,主分支更新了几次。当我完成开发和测试时,我做了: git checkout
我是一名优秀的程序员,十分优秀!