gpt4 book ai didi

MYSQL 在 where 子句中使用 count(1) ?

转载 作者:行者123 更新时间:2023-11-29 08:32:36 24 4
gpt4 key购买 nike

我正在做面部识别。我有一个包含 A 组人员和 B 组人员的数据库。我想检查 A 组中的每个人与 B 组中的每个人。我正在运行许多不同的算法来验证面孔。为此,我设置了下表

comparison (
id int,
personA_id int,
personB_id int,
)

facerecScore (
id int,
score int,
comparison_id int,
algo_id int,
)

假设我有一个特征脸程序作为我正在测试的第一个算法运行。特征脸的 algo_id 为 1。

我想要做的是进行一个查询,从比较中选择 personApersonB,其中 facerecScore 表中不存在现有记录其中 algo_id 为 1,比较就是那个比较。

换句话说,如果我已经对这两个人运行了特征脸,我就不想再次运行它。因此,我不想选择 facerecscore 表中已有 algo_id 为 1

的记录的比较

最佳答案

您可以尝试类似以下的操作,它将查找 comparison 中对于给定 algo_idfacerecScore 中没有记录的所有行由参数 :current_algo 给出

SELECT *
FROM comparison
WHERE id not in (
SELECT comparison_id
FROM facerecScore
WHERE algo_id = :current_algo
);

如果您想要查找在 facerecScore 中没有相应记录的所有 algo_ids 的所有比较行,那么您可以使用如下所示的内容。

SELECT *
FROM comparison, (SELECT algo_id FROM facerecScore GROUP BY algo_id) algo
WHERE id not in (
SELECT comparison_id
FROM facerecScore
WHERE algo_id = algo.algo_id
);

简单来说,此查询首先查找 comparison 行和 algo_id 的所有组合,然后从结果集中删除 facerecScore 中具有记录的任何组合。

关于MYSQL 在 where 子句中使用 count(1) ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16154725/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com