gpt4 book ai didi

mysql - 更新 MySQL 查询,选择具有特定非唯一值的记录

转载 作者:行者123 更新时间:2023-11-30 01:21:19 26 4
gpt4 key购买 nike

我正在寻求创建 MySQL 查询的帮助。我有以下数据库表:

+----------------+-----------+-------------+------------+-------------------+---------+-------------+---------------+--------+
| option_type_id | option_id | sku | sort_order | customoptions_qty | default | in_group_id | dependent_ids | weight |
+----------------+-----------+-------------+------------+-------------------+---------+-------------+---------------+--------+
| 552 | 137 | 13071727 | 1000 | 0 | 0 | 0 | | 0.0000 |
| 553 | 137 | 13071727B | 1000 | 0 | 0 | 1 | | 0.0000 |
| 554 | 137 | 13071727C | 1000 | 1 | 0 | 2 | | 0.0000 |
| 555 | 137 | 13071727D | 1000 | 1 | 0 | 3 | | 0.0000 |
| 556 | 138 | 13085350-1 | 1000 | 0 | 0 | 0 | | 0.0000 |
| 557 | 138 | 13085350-1D | 1000 | 2 | 0 | 1 | | 0.0000 |
| 558 | 138 | 13085350-1C | 1000 | 3 | 0 | 2 | | 0.0000 |
| 559 | 138 | 13085350-1B | 1000 | 2 | 0 | 3 | | 0.0000 |
| 560 | 139 | 13069547M | 1000 | 20 | 0 | 0 | | 0.0000 |
| 561 | 140 | 13084477-2 | 950 | 2 | 0 | 0 | | 0.0000 |
| 562 | 140 | 13084477-2B | 951 | 2 | 0 | 1 | | 0.0000 |
| 563 | 140 | 13084477-2C | 952 | 3 | 0 | 2 | | 0.0000 |
| 564 | 140 | 13084477-2D | 953 | 0 | 0 | 3 | | 0.0000 |
| 565 | 140 | 13084477-2E | 954 | 2 | 0 | 4 | | 0.0000 |
| 566 | 141 | 13066533-1 | 1000 | 4 | 0 | 0 | | 0.0000 |
| 567 | 141 | 13066533-1B | 1000 | 5 | 0 | 1 | | 0.0000 |
| 568 | 141 | 13066533-1C | 1000 | 5 | 0 | 2 | | 0.0000 |
| 569 | 141 | 13066533-1D | 1000 | 0 | 0 | 3 | | 0.0000 |
| 570 | 142 | 13071674 | 1000 | 0 | 0 | 0 | | 0.0000 |
| 571 | 142 | 13071674D | 1000 | 1 | 0 | 1 | | 0.0000 |
| 572 | 142 | 13071674C | 1000 | 2 | 0 | 2 | | 0.0000 |
| 573 | 142 | 13071674B | 1000 | 0 | 0 | 3 | | 0.0000 |
| 574 | 142 | 13071674E | 1000 | 4 | 0 | 4 | | 0.0000 |
| 575 | 143 | 13071667 | 1000 | 0 | 0 | 0 | | 0.0000 |
| 576 | 143 | 13071667B | 1000 | 0 | 0 | 1 | | 0.0000 |
| 577 | 143 | 13071667C | 1000 | 0 | 0 | 2 | | 0.0000 |
| 578 | 143 | 13071667D | 1000 | 0 | 0 | 3 | | 0.0000 |
| 579 | 143 | 13071667E | 1000 | 0 | 0 | 4 | | 0.0000 |
| 580 | 144 | 13066295 | 1000 | 1 | 0 | 0 | | 0.0000 |
+----------------+-----------+-------------+------------+-------------------+---------+-------------+---------------+--------+

我想要做的是更新所有in_group_id = 0的行,以在行的末尾添加一个A sku。不过,我只想对没有具有唯一 option_id 值的行执行此操作。

例如,您可以看到 option_id = 139 的行是具有此 option_id 值的唯一行,因此我会希望排除此行的更新。

基本上,这是一个产品选项列表,某些产品有多个选项,每个选项都有自己的 SKU。但是,对于这些具有多个选项的产品,第一个选项的 SKU 末尾缺少“A”,我想添加它。但我不想为只有 1 个选项的产品添加“A”。我希望这是有道理的。

如果有人可以就可以实现这一目标的 MySQL 语句提出建议,那就太好了!

最佳答案

此查询将执行您想要的操作:

UPDATE Table1
LEFT OUTER JOIN (SELECT *
FROM Table1
GROUP BY option_id
HAVING count(*) = 1) t1 ON t1.option_type_id = Table1.option_type_id
SET table1.sku = concat(table1.sku,'A')
WHERE table1.in_group_id = 0 AND t1.option_type_id is null

请参阅 SQL FIDDLE:http://www.sqlfiddle.com/#!2/9d08e/1/0

关于mysql - 更新 MySQL 查询,选择具有特定非唯一值的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18496026/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com