我DISTINCTly讨厌MySQL(帮助构建查询)

Ale*_*Mcp 3 mysql sql select distinct

我相信这是明确的前进:

我有一张30,000行的表.当我SELECT DISTINCT 'location' FROM myTable返回21,000行时,大约是我期望的,但它只返回那一列.

我想要的是将它们移动到一个新表,但每个匹配的整行.

我最好的猜测是类似SELECT * from (SELECT DISTINCT 'location' FROM myTable)或类似的东西,但它说我有一个模糊的语法错误.

有没有一种方法可以抓住每个DISTINCT行的其余部分并一次性将它移动到一个新表中?

TMG*_*TMG 8

SELECT * FROM myTable GROUP BY `location`
Run Code Online (Sandbox Code Playgroud)

或者如果你想转移到另一张桌子

CREATE TABLE foo AS SELECT * FROM myTable GROUP BY `location`
Run Code Online (Sandbox Code Playgroud)

  • +1简洁和问的内容; 仍然你可以指出distinct总是返回不同的行(在所有列中),并且group by(在mysql中)仅为group by中提到的列返回不同的行(并随机选择其他非聚合列;这是mysql扩展符合标准,因此在其他数据库中工作方式不同) (2认同)