首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算mysql查询中的相同值

计算mysql查询中的相同值
EN

Stack Overflow用户
提问于 2012-10-28 06:10:24
回答 3查看 177关注 0票数 0

所以我有一个查询,比如

代码语言:javascript
运行
复制
SELECT * FROM `catalog` WHERE `id` IN ('2','2','3','3','3');

可以让它返回5行(2行,id为"2“,3行,id为"3")或添加count作为新列?

EN

回答 3

Stack Overflow用户

发布于 2012-10-28 07:04:59

不知道为什么要这样做,但可以使用内部查询而不是'in‘子句:

代码语言:javascript
运行
复制
select *
from `catalog` c,
(
    select 2 ids
    union all
    select 2
    union all
    select 3
    union all
    select 3
    union all
    select 3
) k
where c.id = k.ids
票数 1
EN

Stack Overflow用户

发布于 2012-10-28 07:13:09

尝试如下所示:

代码语言:javascript
运行
复制
SELECT t.p,count(*)  FROM 
    catalog, 
    (SELECT 2 as id
    Union all select 2 as id
    Union all select 3 as id
    Union all select 3 as id
    Union all select 3 as id)as t 
where catalog.id = t.id
票数 1
EN

Stack Overflow用户

发布于 2012-10-28 07:18:11

可以使用临时表完成此操作:

代码语言:javascript
运行
复制
create temporary table arrayt (id int);
insert into arrayt values  ('2'),('2'),('3'),('3'),('3');
select catalog.* from arrayt a LEFT JOIN catalog on (a.id=catalog.id);

如果您需要计数

代码语言:javascript
运行
复制
select count(catalog.id) as count,catalog.id as id from arrayt a LEFT JOIN catalog on (a.id=catalog.id) group by catalog.id;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13104618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档