我从SQL开始,不知道该怎么做。
我正在寻找的是一种向列提供相同ID的方法,它是一个相同的值。
这是我的表:
我希望'afrique du sud'
示例具有相同的'id_country'
我怎么能这样做?
我尝试了SELECT DISTINCT country FROM country SET id_country = id_country + 1
但它没有用,我想这是因为SELECT不会混淆价值(这是有道理的)。
任何帮助都会很乐意接受。
答案 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)