mysql> SELECT COUNT(name) FROM CVE WHERE name NOT IN ("CVE-1999-0001", "CVE-1999-0002");+-------------+| count(name) |+-------------+| 17629 |+-------------+1 row in set (0.02 sec)mysql> SELECT COUNT(name) FROM CVE WHERE name NOT IN ("CVE-1999-0001", "CVE-1999-0002", NULL);+-------------+| count(name) |+-------------+| 0 |+-------------+1 row in set (0.01 sec)当在子查询中出现NULL的时候,结果就一定是0了。查了一下手册,确实有这样的说法。所以最后实际采用了这样的查询:SELECT COUNT(DISTINCT name)FROM CVEWHERE name NOT IN (SELECT cveID FROM cve_sig WHERE cveID IS NOT NULL)顺便提一下MySQL中正则表达式匹配的简单使用:SELECT COUNT(alarmID)FROM AlarmWHERE (CVE NOT RLIKE "^CVE-[0-9]{4}-[0-9]{4}$" OR CVE IS NULL)当然,RLIKE也可以写作REGEXP,我个人倾向于使用RLIKE,因为拼写接近LIKE,可以见名知义。Ubuntu下更改MySQL数据库存储位置Linux备份MySQL-通过邮件自动发送到指定邮箱相关资讯 mysql
- 数据库服务器 MySQL (08/15/2013 06:50:23)
- MySQL 5.6 GA 及逃亡潮 (02/08/2013 14:36:35)
- MySQL 5.5.22、5.1.62、5.0.96全线 (03/22/2012 19:03:49)
| - MySQL Administrator连接VMWare下 (05/24/2013 09:20:58)
- MySQL 5.1.68 发布 (02/05/2013 08:37:47)
- CentOS 5.2+MySQL+Heartbeat双机互 (01/29/2012 11:16:55)
|
本文评论 查看全部评论 (0)