gpt4 book ai didi

mysql - 在(选择.....)MySQL

转载 作者:行者123 更新时间:2023-11-29 03:10:35 25 4
gpt4 key购买 nike

我不会说英语。我使用谷歌翻译。

(`id` int(11) NOT NULL AUTO_INCREMENT,)
(`members` text NOT NULL)

我有以下查询:

SELECT members FROM team WHERE id = 37

结果是:25,36,38,87 完美运行

我还有另外一个问题:

SELECT * 
FROM users
WHERE id_users IN ( 25,36,38,87 )

完美运行

但这行不通

SELECT * 
FROM users
WHERE id_users IN (SELECT members FROM team WHERE id = 37 )

我必须用 PHP 修复它:

SELECT * FROM users WHERE id_users IN ( $members )

非常感谢大家。再一次,对不起我的英语。我用谷歌翻译。非常好的网站

添加来自评论的架构:

CREATE TABLE IF NOT EXISTS team ( 
id int(11) NOT NULL AUTO_INCREMENT,
members text NOT NULL,
PRIMARY KEY (id)
)

CREATE TABLE IF NOT EXISTS users (
id_users int(11) NOT NULL AUTO_INCREMENT,
name varchar(100) CHARACTER SET latin1 NOT NULL,
PRIMARY KEY (id_usuario)
)

最佳答案

您应该修复您的架构以使用关联表而不是 CSV 列。

与此同时,您可以使用 find_in_set ,这样的事情应该有效:

select u.*
from users u
join team t on find_in_set(u.id, t.members)
where t.id = 37

但您真的应该修复您的架构,CSV 列肯定是一种 SQL 反模式,只会带来麻烦。

关于mysql - 在(选择.....)MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9107686/

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