将具有相同内容的列相乘,使它们计为"一个"

时间:2014-07-11 15:07:29

标签: php mysql arrays count

关于

我在我的数据库中有这个表,其中包含一些用户ID和时间保存的信息。

| CONTENT | USER ID | TIME       |
| text    | 1       | 1405085592 |
| hello   | 2       | 1405085683 |
| hey     | 1       | 1405086953 |

此示例可能是来自我的数据库的数据转储,现在您可以计算出“三”行。但是我只需要知道有多少用户在我的数据库中有一些信息。因此,我真正寻找的结果是“两个”,因为只有两个用户在数据库中有信息。用户ID 1拥有“text”(1)& “嘿”(3)其中用户ID 2有“你好”(2)。

简而言之

我想要计算我的数据库中有多少用户(无论他们有多少行信息)。

**我尝试了什么**

我尝试将每一行提取到一个数组中,然后使用array_unique将它们计算在一起,工作正常,但我不认为这是一个干净且最好的方法。

然后是什么?

我可以使用array_unique并使用count来查看有多少行,但我正在寻找更干净的东西。我试图搜索这个,但我真的不确定我应该搜索什么来打击我正在寻找的东西。被卡住后,虽然我想学习新的东西,但我想在这里发布这个问题。

注意

我希望你们能帮助我,我试图说明我在寻找什么以及我尝试过什么。如果没有,请告诉我。很抱歉,如果上面的某些内容包含拼写错误的单词,语法不正确或者说得不好解释。我每天都不会说英语,但我会尽我所能。

2 个答案:

答案 0 :(得分:3)

您正在寻找DISTINCT关键字。它返回列的唯一值计数:

SELECT COUNT(DISTINCT user_id)
FROM your_table

请参阅SQL Fiddle上的示例。

答案 1 :(得分:0)

此查询:

SELECT DISTINCT user_id FROM table

将为表中的每个用户返回一行。