gpt4 book ai didi

Mysql SELECT with column using subquery and a IN

转载 作者:太空宇宙 更新时间:2023-11-03 10:48:55 26 4
gpt4 key购买 nike

我有一个名为 category_id 的字段从我的 table 上 contact作为内容,idcategories 的列表 ID (1 或 1,2,3 )每 contact .

来自具有 id 和 name 列的类别表的类别名称。

我想显示来自联系人表的类别列表的所有类别名称的结果。怎么做?

SELECT c.`id`,
(SELECT cat.`name`
FROM category cat
WHERE c.`category` in cat.`id` ) AS 'Categories'
FROM contact c

我对此进行了测试,但当然无法正常工作。 C. category列内容可以是 1,2,3 或 3。

最佳答案

您有一个包含文字文本 1,2,3 的类别字段吗?那么你想要的东西不是直接可能的。字段在 SQL 中被视为原子实体,您的查询被解析/执行为

WHERE c.category IN ('1,2,3')
aka
WHERE c.category = '1,2,3'

代替

WHERE c.category IN ('1', '2', '3')
aka
WHERE (c.category = '1') OR (c.category = '2') OR (c.category = '3')

你需要。

MySQL 确实有 FIND_IN_SET()对于这类事情,但请注意,使用它会阻止使用索引,并且您的查询性能在任何大型表上都会很糟糕。它还使您的 SQL 不可移植。

关于Mysql SELECT with column using subquery and a IN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27230750/

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