gpt4 book ai didi

mysql - 我可以在 SQL 中做并行字段吗?

转载 作者:行者123 更新时间:2023-11-29 01:10:20 27 4
gpt4 key购买 nike

我在 MySQL 数据库中有一堆 X。有些 X 不在一起,我想要一个包含所有 X 对的表和一个表示它们是否正常的 bool 值。

这部分很简单:

CREATE TABLE good_x (
X_id_1 int(10) not null ,
X_id_2 int(10) not null ,
is_good tinyint(1)
) ;

我的问题是:给定 Xsub1 和 Xsub3 放在一起。

SELECT is_good from good_x where X_id_1 = "Xsub1" and X_id_2 = "Xsub3" ;

但是如果数据来自 Xsub3、Xsub1 怎么办?我可以在表中有两个条目:

Xsub1,Xsub3,1
Xsub3,Xsub1,1

但是,您必须跟踪两件事。就我而言,这是一个受控词汇表,所以我预计不会有太大变化。但是,如果我想添加第三个 X,Xsub5,那么您将得到六个条目。

Xsub1,Xsub3,Xsub5,1
Xsub1,Xsub5,Xsub3,1
Xsub3,Xsub1,Xsub5,1
Xsub3,Xsub5,Xsub1,1
Xsub5,Xsub1,Xsub3,1
Xsub5,Xsub3,Xsub1,1

难以维护。

有没有一种方法可以放入一堆 X,两个或更多,并将其与 bool 值相关联,这样我就不必为双倍、三倍、四倍、五倍等创建单独的表。这是吗可能在任何 SQL 中,如果是,语法是什么?

最佳答案

像这样将每个有效分组存储在一个表中:

CREATE TABLE good_x (x_id CHAR, group_id INT);

用这样的分组作为种子:

INSERT INTO good_x(x_id,group_id) values ('Xsub3',1);
INSERT INTO good_x(x_id,group_id) values ('Xsub1',1);

对于 3:

INSERT INTO good_x(x_id,group_id) values ('Xsub3',2);
INSERT INTO good_x(x_id,group_id) values ('Xsub1',2);
INSERT INTO good_x(x_id,group_id) values ('Xsub5',2);

现在像这样运行 SELECT:

SELECT 1
FROM good_x
WHERE x_id IN ([your list of values])
GROUP BY group_id
HAVING count(1) = n;

关于mysql - 我可以在 SQL 中做并行字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9215721/

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