这可能会令人困惑,但我想要做的是基本的选择不同的columnx限制3,我遇到的问题是它返回3行,但我只想从一个不同的columnx获取所有值。
id|columnx
1 |here
2 |here
3 |Idontwant
4 |Apple
所以我想要一个返回1和2的查询。问题是columnx可能是任何东西,我不能说只是在哪里columnx ='here'
限制3发挥作用,因为它被硬编码到我的C#应用程序中。问题是我还基于columnx设置了一个hashset,我必须为所有记录保留该columnx。但是,我把每个查询放在一起就有可能在我的限制中我将返回columnx中的2个值,这些值是不同的值,但是,每个查询只能有不同的columnx值。
不,我想要的是属于columnx的所有值,在此示例中为columnx ='here',当我做一个截然不同的所有我想回来的是第一个不同的结果,而不是'Idontwant'或'apple',无论限制。
这是查询,它有效。
SELECT id,columnx
FROM sites where columnx= (select distinct columnx from sites limit 1) limit 3
答案 0 :(得分:3)
听起来你想要三个不同的 columnx 值的 id 值。这是正确的吗?试试这个:
SELECT id, columnx
FROM table AS t1
JOIN (
SELECT DISTINCT(columnx) AS columnx
LIMIT 1
) AS t2 ON (t1.columnx = t2.columnx);
我也想知道你在某处是否需要一些ORDER BY,但是你的问题没有提及,所以我省略了它 - 本质上意味着你将获得三个半随机 columnx 强>价值。
答案 1 :(得分:0)
说实话,我不确定你要问的是什么,但听起来你想要为那些在columnx中有重复值的行返回id(将结果限制为3)。
SELECT id, columnx
FROM tablename
GROUP BY columnx
HAVING ( COUNT(columnx) > 1 )
LIMIT 3