Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 是否更新列中重复的行?_Mysql_Sql_Duplicates - Fatal编程技术网

Mysql 是否更新列中重复的行?

Mysql 是否更新列中重复的行?,mysql,sql,duplicates,Mysql,Sql,Duplicates,我正在处理一个相当大的城市数据库。 我有几排重复的城市,因为它们来自不同的国家/州 我需要做的是: 重复的城市以这种方式连接在一起 ascii\u name+\u+国家代码列:name\u city 只有重复的城市 使用此筛选代码,重复执行以下操作: SELECT ascii_name FROM cities GROUP BY ascii_name HAVING count (ascii_name)> 1 例如,IMG with Rome我得到3行,我想在列名称中用国家代码区分它们 是m

我正在处理一个相当大的城市数据库。 我有几排重复的城市,因为它们来自不同的国家/州

我需要做的是: 重复的城市以这种方式连接在一起 ascii\u name+\u+国家代码列:name\u city

只有重复的城市

使用此筛选代码,重复执行以下操作:

SELECT ascii_name FROM cities GROUP BY ascii_name HAVING count (ascii_name)> 1
例如,IMG with Rome我得到3行,我想在列名称中用国家代码区分它们

是mysql


我认为您的子查询应该运行良好

select ascii_name+"_"+country_code as name_city
from cities
where ascii_name in
(SELECT ascii_name FROM cities GROUP BY ascii_name HAVING count (ascii_name)> 1);

不确定这是否是你正在寻找的

连接语法因数据库而异。||适用于ANSI连接运算符,适用于Oracle,+适用于SQL server,CONCAT函数适用于MySQL

SELECT CONCAT(ascii_name,'_',country_code) as name_city from cities 
where ascii_name in (select ascii_name FROM cities GROUP BY ascii_name HAVING count (ascii_name)> 1)

使用与查找所有重复名称的子查询联接的更新查询

UPDATE cities AS c1
JOIN (SELECT ascii_name
      FROM cities
      GROUP BY ascii_name
      HAVING COUNT(*) > 1) AS c2
    ON c1.ascii_name = c2.ascii_name
SET c1.name_city = CONCAT(c1.ascii_name,'_',c1.country_code)

+运算符不在的MySQL中工作concatenation@RavishankarSivasubramaniam,我通过复制他提到的内容来编写伪代码,让他了解查询的外观……如果它能很好地过滤我想要的内容,我就不会执行它。我想要更新整个表中被复制的列的名称_city。它是mysql@manolomanolin对不起,我不明白。上面的查询将为您提供所有重复的城市。你还想要那些不重复的城市吗?如果不使用国家/地区代码连接,我想更新选择update cities set name\u city=CONCATascii\u name的name\u city列,“国家/地区代码”将更新所有行。如果只想更新重复的城市,请更新城市集name\u city=CONCATascii\u name,“国家/地区代码”,国家/地区代码,其中ascii\u名称按ascii\u名称从城市组中选择ascii\u名称,计数ascii\u名称>11052-La columna:“ascii\u名称”在字段列表中不明确。在我将ascii\u名称编辑为c1之前,您是否复制了我的原始代码。ascii\u名称?此代码正确,我成功完成了我想要的操作=DDD