gpt4 book ai didi

php - MySQL 相当于 PHP Explode()

转载 作者:行者123 更新时间:2023-11-29 08:03:49 26 4
gpt4 key购买 nike

假设,我的表中有一个 MySQL 列,其中包含以下数据

1,2,3。实际上,这些是另一个表的primary_key。现在,让我说说我想做的事情。

我想使用逗号 (,) 分解这些内容,并希望创建一个子查询以从另一个表中获取信息。

我这里给出两个表格数据,希望能帮助你正确理解..

表A

------------------------------------
| col1 | col2 | col3 |
------------------------------------
| 1 | Sam | 50 |
------------------------------------
| 2 | Zor | 55 |
------------------------------------
| 3 | Sad | 40 |
------------------------------------

表B

--------------------------------
| col1 | idFromTableA |
--------------------------------
| 1 | 1,3 |
--------------------------------
| 2 | 1,2 |
--------------------------------
| 3 | 1,2,3 |
--------------------------------

现在,我正在从 tableB 进行查询。就像下面的查询一样-

从表B中选择*

我想使用 idFromTableAtableA 中选取 col2。我知道 GROUP_CONCAT 但我无法理解。

如何使用存储在名为 idFromTableAtableB 中的 id 来选择 col2 值?我想要分解 idFromTableA 的值,并希望创建一个子查询来从 tableA 获取值。我可以用这个逻辑实现这个目标吗?

根据 @Phil 的建议,我正在创建另一个表并存储数据,如下所示 - 可以吗?

mysql> select * from bb_user_branches;
+-------+---------+-----------+
| ub_id | user_id | branch_id |
+-------+---------+-----------+
| 1 | 5 | 1 |
| 2 | 5 | 29 |
+-------+---------+-----------+
2 rows in set (0.00 sec)

最佳答案

创建一个连接表以促进多对多关系,例如

CREATE TABLE `tableA_B` (
a_col1 INT NOT NULL, -- or whatever the data type is for the foreign key
b_col2 INT NOT NULL,
PRIMARY KEY (a_col1, b_col1),
FOREIGN KEY (a_col1) REFERENCES tableA (col1),
FOREIGN KEY (b_col1) REFERENCES tableB (col1)
) ENGINE=InnoDB;

然后您可以插入相关数据

INSERT INTO tableA_B (a_col1, b_col1) VALUES
(1, 1), (3, 1),
(1, 2), (2, 2),
(1, 3), (2, 3), (3, 3);

然后您可以执行您的选择...

SELECT b.col1, a.col2
FROM tableB b
INNER JOIN tableA_B ab ON b.col1 = ab.b_col1
INNER JOIN tableA a ON ab.a_col1 = a.col1;

(可选)从 tableB 中删除 idFromTableA 列...

ALTER TABLE `tableB` DROP COLUMN `idFromTableA`;

您可能想要尝试将逗号分隔值迁移到联结表中,而不是使用上面的 INSERT 语句。您可能希望使用可编程客户端界面(例如 PHP + PDO/mysqli)来执行此操作。

关于php - MySQL 相当于 PHP Explode(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23125388/

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