2
我想更新一个表,但需要按店名分组。我希望具有相同商店名称的所有分组条目都使用相同的ID进行更新。所有其他商店都应该有自己的ID。MySQL更新与分组和变量
所以,这就是我想:
SET @row_number:=0;
UPDATE `TABLE 75` as t1
INNER JOIN (SELECT search_shop FROM `TABLE 75` WHERE sap_id = '' GROUP BY search_shop) as t2
ON t1.search_shop = t2.search_shop
SET sap_id = CONCAT('XX',@row_number:[email protected]_number+1)
与此查询每一个项目获取是一个自己的ID - 即使是同名的人。
所以我想是这样的:
shop_name - sap_id
sm_name_1 - XX1
sm_name_2 - XX2
sm_name_2 - XX2
sm_name_3 - XX3
等。
感谢您的帮助! :)
刚一说明,而不是加入表本身,你可以简单地写'那里sap_id = '''。或者查询比您在这里显示的更复杂?如果您必须更新单个表或您必须加入它,则可能很重要。 – fancyPants 2014-09-29 15:07:19
我需要加入它,因为我无法通过group更新一行,可以吗?连接的主要目的应该是获得与组相同的命名条目,并使用相同的sap_id更新它们。但是 - 正如我在我的问题中提到的那样 - 使用该查询,无论是否存在其他相同的命名条目,每行都会获得自己的ID。 – sleepless 2014-09-30 06:30:04
好吧,提供样本数据和预期结果可能是一个好主意。你的加入和团队真的没有意义,没有冒犯性,或者我根本不理解你想做什么。 – fancyPants 2014-09-30 07:14:01