在SELECT DISTINCT

时间:2015-12-09 09:38:25

标签: mysql

我从SQL开始,不知道该怎么做。

我正在寻找的是一种向列提供相同ID的方法,它是一个相同的值。

这是我的表:

enter image description here

我希望'afrique du sud'示例具有相同的'id_country' 我怎么能这样做?

我尝试了SELECT DISTINCT country FROM country SET id_country = id_country + 1但它没有用,我想这是因为SELECT不会混淆价值(这是有道理的)。

任何帮助都会很乐意接受。

3 个答案:

答案 0 :(得分:2)

您需要设置一个名为country的单独表格。它将有2列,每个国家/地区将有一个id和一个name。然后,您可以使用以下内容从id_country表格将id设置为country

UPDATE table t, country_table c SET t.id_country = c.id WHERE t.country = c.name

答案 1 :(得分:0)

您要做的第一件事就是按国家/地区对表格进行分组,并始终为每个国家/地区选择最大ID。

SELECT description_country,  max(id) id
FROM country 
GROUP BY description_country

如果你有这个,你想要用上一个查询匹配的id来更新原始表。

UPDATE country c
SET ID_COUNTRY=X.id
FROM 
(SELECT description_country,  max(id) id
FROM country 
GROUP BY description_country) X
WHERE c.description_country = x.description_country

答案 2 :(得分:0)

您可以使用此查询:

update country_table set id_country = 
(select max_id from (select max(id) as max_id, country from country_table group by  country_table.country ) as temp_table
 where temp_table.country = country_table.country)