2

我在数据库中有一个列,我使用下面的代码从该列中获取不同的值

"SELECT DISTINCT category FROM galleryinfo"

我有另一列包含相关图像的路径。

所以我的问题是我如何从类别中获取唯一/不同的值以及从另一列获取对应的路径。

提前感谢您的帮助。

id    path           category
1     img1           car
2     img2           car
3     img3           truck
4     img4           truck
5     img5           bike

我需要的结果是

img1   car     
img3   truck   
img5   bike
4

1 回答 1

1

您可以使用 GROUP BY 查询将结果减少到每个不同类别一行:

SELECT category, path FROM galleryinfo GROUP BY category

问题在于该查询返回的路径是任意的。事实上,在大多数 SQL 实现中,这是一个非法查询并导致错误。MySQL 更宽松,但它会从与类别匹配的路径中返回任意路径(实际上,它从第一行中选择物理存储的路径,但这没有记录或保证)。

您可以选择MIN(path)or MAX(path),或者将每个类别的所有路径连接到一个字符串中GROUP_CONCAT(path),但仅此而已。

于 2013-07-16T17:34:30.070 回答