这可能会让人困惑,但我想做的是一个基本的select distinct columnx limit 3,问题是它返回3行,但我只想从一个distinct columnx中获取所有值。

id|columnx
1 |here
2 |here
3 |Idontwant
4 |Apple

所以我想要一个返回1和2的查询。问题是columnx可以是任何东西,我不能只说columnx在哪里。
限制3开始发挥作用,因为它是硬编码到我的C应用程序。问题是我还设置了一个基于columnx的散列集,我必须对所有记录使用columnx静态。但是,对于我组合的每个查询,有可能使用我的限制在columnx中返回2个值,这是不同的值,但是,每个查询只能有不同的columnx值。
不,我想要的是属于columnx的所有值,在这个例子columnx='here'中,当我做一个distinct时,我想要的是第一个distinct结果,而不是'idontwant'或'apple',不管限制是什么。
这是一个查询,它有效。
SELECT id,columnx
FROM sites where columnx= (select distinct columnx from sites limit 1) limit 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);

我还想知道你是否需要一些顺序,但你的问题并没有提到,所以我省略了它——本质上意味着你将得到三个半随机的columnx值。

关于mysql - Mysql选择distinct但限制不同的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6701491/

10-10 21:19