【问题标题】:MySQL select distinct values based on specific fieldMySQL根据特定字段选择不同的值
【发布时间】:2014-11-10 17:40:04
【问题描述】:

嗨,我有一个包含 6 列的表,其中有一个名为 user_id 的列,它在表中出现了很多次,还有一个列,即笔记本电脑,它引用了用户为某些操作带来的笔记本电脑。这在表中也出现了很多次。

ID  DATE        LAPTOP    USER_ID
1   1/1/2014    Acer      10
2   1/1/2014    Toshiba   2
3   1/1/2014    HP        5
4   1/1/2014    Acer      5
5   1/1/2014    Toshiba   5
6   1/1/2014    HP        2
7   2/1/2014    Lenovo    2
8   2/1/2014    Acer      10
9   2/1/2014    HP        2
10  2/1/2014    HP        5

我需要为每个 user_id 选择不同的笔记本电脑出现次数,而不是通常从表中选择不同的出现次数,因此所需的结果是

LAPTOP    USER_ID
Acer      10
Toshiba   2
HP        2
Lenovo    2
HP        5
Acer      5
Toshiba   5

到目前为止,我尝试过的一切似乎都与预期的结果相去甚远

【问题讨论】:

  • 你能告诉我们你试过的SQL吗?
  • DISTINCTCONCAT 可以是一个好的开始。
  • 不会select distinct laptop, user_id from table给你想要的结果吗?
  • 这正是您会得到的,笔记本电脑和 user_id 的不同组合。见sqlfiddle.com/#!2/340bc6/2
  • @nikolas jpw 的解决方案也可以,它会选择 laptop, user_id 的不同组合

标签: php mysql distinct


【解决方案1】:

你可以使用GROUP BY

SELECT LAPTOP, USER_ID FROM Table1 GROUP BY LAPTOP, USER_ID;

只是为了让答案尽可能完整,我在上面添加了 jpw 的解决方案。

SELECT DISTINCT laptop, user_id FROM table

这是GROUP BYfiddle

这里是 jpw 的 DISTINCT fiddle

【讨论】:

  • 这也很有效..我想它并不像最初想象的那么复杂...非常感谢
猜你喜欢
  • 2012-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多