简单:我想计算子查询中的行数。请注意,状态是主机是否在线。
SELECT COUNT(ip_address) FROM `ports` (
SELECT DISTINCT ip_address FROM `ports` WHERE status IS TRUE
)
Run Code Online (Sandbox Code Playgroud)
第一个查询在单独运行时返回:
SELECT DISTINCT ip_address FROM `ports` WHERE status IS TRUE
Run Code Online (Sandbox Code Playgroud)
SELECT COUNT(ip_address) FROM `ports` (
SELECT DISTINCT ip_address FROM `ports` WHERE status IS TRUE
)
Run Code Online (Sandbox Code Playgroud)
自行运行的第二个查询返回:
SELECT COUNT(ip_address) FROM `ports`
Run Code Online (Sandbox Code Playgroud)
SELECT DISTINCT ip_address FROM `ports` WHERE status IS TRUE
Run Code Online (Sandbox Code Playgroud)
我想知道如何计算 5 个 IP 地址的列表。
我一直在网上寻找这个简单问题的可能解决方案,但感到沮丧,所以我想问问专家。
结构
1 个表名为:scan
2 列名为:id和date
问题
我有两个工作查询,一个 SELECT 和一个 INSERT,我想将它们合并在一起创建一个条件等于 0 的 INSERT。
查询1
如果数据库中最新的ID 行具有今天的扫描日期,则显示“1”,否则当不存在今天的日期时显示“0”。
SELECT
COUNT(scan.date) AS datecheck
FROM scan
WHERE scan.id = (SELECT
MAX(scan.id) AS datecheck
FROM scan
WHERE scan.date = CURDATE())
Run Code Online (Sandbox Code Playgroud)
查询2
如果今天没有条目,意味着结果为“0”,则创建一个包含 ID+1 和当前日期的新行。
INSERT INTO `scan`(`id`, `date`) SELECT (MAX(id)+1), CURDATE() FROM scan;
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几个小时了,但还没有成功,如果您能告诉我哪里出了问题并让我知道正确的查询是什么,我将不胜感激。谢谢。