gpt4 book ai didi

php - MySQL 对唯一列组合执行检查

转载 作者:行者123 更新时间:2023-11-30 23:11:56 26 4
gpt4 key购买 nike

在 MySQL 表中有以下列:

id, spn(PK), cat1, cat2, cat3, act1, act2, act3 

(cat 字段是 VARCHAR 类型,act 字段是 INT)我需要执行检查以查看所有 catX 字段的唯一组合的总和是否等于所有 actX 字段的唯一组合,如果不是,则返回找到的不匹配项的 spn 值列表。

我最初的想法是选择 concat(cat1,cat2,cat3) as A以及 concat(act1,act2,act3) as B并比较它们,但我不太确定如何执行比较并返回找到的 spn 列表,其中 A <> B .欢迎任何想法。

我的应用程序是用 PHP 编写的,所以如果您能建议一个也使用 PHP 的解决方案,那很好。

注意:根据前 2 个答案,我想澄清一下,我正在尝试检查所有 cat 字段的唯一组合数是否等于行为领域。

Sample data

最佳答案

我不知道列类型,所以我将采用最标准的解决方案:

SELECT spn
FROM table
WHERE cat1 != act1 || cat2 != act2 || cat3 != act3

也许您的数据库设计可以改进。在列名中引入数字通常是糟糕设计的同义词。

编辑:假设顺序在您的排列中并不重要:

SELECT id
FROM files_imported
WHERE ((cat1 != cat2) + (cat1 != cat3) + (cat2 != cat3)) != ((act1 != act2) + (act1 != act3) + (act2 != act3))

关于php - MySQL 对唯一列组合执行检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19477803/

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