所以我有這樣計數相同的值
SELECT * FROM `catalog` WHERE `id` IN ('2','2','3','3','3');
查詢而這回只有2行ID爲2和3有可能使其返回5行(2 ID爲「2」和3與ID「3」)或添加計數爲新列?
所以我有這樣計數相同的值
SELECT * FROM `catalog` WHERE `id` IN ('2','2','3','3','3');
查詢而這回只有2行ID爲2和3有可能使其返回5行(2 ID爲「2」和3與ID「3」)或添加計數爲新列?
不知道你爲什麼會想要做這樣的事情,但不是用「在」條款,你可以使用一個內部查詢:
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
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);
,如果你需要算
:它可以用臨時表來完成
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;
您正在使用數據庫引擎來檢索冗餘數據,對於上帝爲什麼? – nyson
這比有點奇怪。 ID通常是表的主鍵,這意味着你只有_one_。你如何期望得到多個,你爲什麼想要?其次,你在引用數字。除非它們存儲在字符數據類型中,否則請勿這樣做。請不要這樣做。 – Ben
@Ben是的,ID是主要的。我需要從數組中獲取具有ID的所有行,看起來像「2,2,3,3,3」,並在此數組中添加相同ID的計數。 – droptheplot