Mysql select distinct 但限制不同的值

标签 mysql

这可能令人困惑,但我想做的是基本选择不同的 columnx 限制 3,我遇到的问题是它返回 3 行,但我只想从一个不同的 columnx 中获取所有值。

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

所以我想要一个将返回 1 和 2 的查询。问题是 columnx 可以是任何东西,我不能只说 where columnx = 'here'

限制 3 发挥作用是因为它已硬编码到我的 C# 应用程序中。问题是我还设置了一个基于 columnx 的哈希集,我必须为所有记录设置静态的 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

最佳答案

听起来您想要三个不同 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值(value)观。

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

相关文章:

php - 通过ajax/jquery调用在页面滚动上加载MySQL数据不会带来正确的数据

mysql - 我不断收到 SQL 错误 (1064) : right syntax to use near '10)' with ON DUPLICATE KEY UPDATE

php - MySQL 不能通过 CodeIgniter 工作,但在 vanilla PHP 中工作正常?

php - 在 mysql 数据库中存储原始 php、javascript、html 或类似内容的最佳实践方法是什么?

mysql - Postgresql 中用户权限的最佳实践?

mysql - 关于地址、城市、国家数据的规范化问题

mysql - SQL 触发器仅影响第一条记录

php - 使用 php 的多查询搜索表单

Mysql VIEW 具有显式列数据类型?

MySql select from subquery 慢(即使子查询本身很快)