选择查询以根据原始列中的值从另一列获取值

时间:2014-02-24 15:45:43

标签: mysql sql

我的问题标题可能有点模糊,但这或多或少都是我想要做的。

我有两列,我想根据第一列(称之为nid)获取第二列的所有值(称之为哈希)。

因此,只要nid相同,就从哈希列中获取与该nid相对应的所有值。

类似于select hash from table where nid = the same

我将如何做到这一点?

我看到有Group By,但这似乎只给我一个哈希值。有没有办法用SQL查询来做到这一点?

| nid | hash |
|  2  | blah |
|  2  | test |
|  2  | goof |
|  3  | next |
|  3  | word |

所以,例如,如果我试图获得与nid 2相关的每个值,我想选择blah,test和goof。

1 个答案:

答案 0 :(得分:1)

使用GROUP_CONCAT将返回第2列

中所有匹配值的串联字符串

所以基本上就像下面这样:

SELECT nid, GROUP_CONCAT(hash) AS hashes
FROM tablename
WHERE nid IN (<somevaluesyouwant>)
GROUP BY nid