我有以下MySQL查询:
查询#1:
SELECT imgURL, imgTitle, FROM images
查询#2:
SELECT DISTINCT imgFamily FROM images
查询#3:
SELECT DISTINCT imgClass FROM images
我想知道是否可以将它们组合成一个查询?换句话说,SELECT imgURL, imgTitle, DISTINCT imgFamily, and DISTINCT imgClass
。
当我尝试按上述方式(没有and
)时,它失败了。有什么建议吗?
我得到的结果如下:MySql ErrorYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DISTINCT imgFamily FROM images
我期望的结果是没有错误,并且返回了行。
答案 0 :(得分:1)
MySQL中的distinct
关键字是distinctrow
的同义词 - 例如。如果你想要'选择不同'。您将只获得结果中尚未出现字段组合的行。通过选择非独特字段,您将无法获得任何明显的结果。这必须作为单独的查询来完成。
答案 1 :(得分:1)
您可以将它们与UNION
关键字结合使用:
SELECT imgURL, imgTitle, FROM images
UNION
SELECT DISTINCT imgFamily, NULL FROM images
UNION
SELECT DISTINCT imgClass, NULL FROM images
但这是一个非常糟糕的主意。后续查询中的所有列必须与所有后续查询中的列具有相同的类型,否则某些数据可能会被截断。
通常,您不应将不相关的查询组合在一起。
答案 2 :(得分:1)
SELECT distinct imgURL, imgTitle, imgFamily, imgClass
FROM images
以上将为您提供独特的行。
SELECT imgURL, imgTitle, imgFamily, imgClass
FROM images
这个将为您提供所有数据。
很难弄清楚你想要做什么。