假设一个表fruits
看起来像这样:
------------------------------------------
| id | name | color | calories |
------------------------------------------
| 1 | apple | red | 20 |
| 2 | orange | orange | 10 |
| 3 | grapes | green | 5 |
| 4 | bananas | yellow | 15 |
| 5 | plum | purple | 25 |
------------------------------------------
如何将一行的值与另一行 交换 ,而使ID号保持不变?
例子:
SWAP ROW WITH ID "5" WITH ROW WITH ID "2"
结果:
------------------------------------------
| id | name | color | calories |
------------------------------------------
| 1 | apple | red | 20 |
| 2 | plum | purple | 25 |
| 3 | grapes | green | 5 |
| 4 | bananas | yellow | 15 |
| 5 | orange | orange | 10 |
------------------------------------------
请注意,除了id之外,所有值都是完整的。我需要使用非常大的值列表来执行此操作,因此我需要一个单行代码,或者最多不需要一个临时表的创建之类的东西。
注意:id是唯一的
谢谢
您可以使用联接不等式来排列要交换的行:
update fruit a
inner join fruit b on a.id <> b.id
set a.color = b.color,
a.name = b.name,
a.calories = b.calories
where a.id in (2,5) and b.id in (2,5)
http://sqlfiddle.com/#!18/27318a/5
这是一个有点复杂的解释,所以我希望它足够清楚,但如果不是,我会尝试和扩展更多。 所以我有一个这样的数据帧:
问题内容: 我在SQL查询中使用sum()寻找帮助: 我使用它是因为我正在执行“分组依据”,这可以确保同一行不会被重复计数。 问题是SUM(conversions.value)对每行的“值”计数超过一次(由于分组依据) 我基本上想为每个DISTINCT conversions.id 做。 那可能吗? 问题答案: 我可能是错的,但据我了解 conversions.id* 是表 转换 的 主键 * s
我想从数据库中列出交换机名称,为此,我已经为Recyclerviewlist实现了应用程序。现在,问题是,我的Recyclerview项包含switch元素,我想在打开或关闭它时执行两个功能。这可能吗?我在chick listener的视图保持器上尝试了它,但它为每个列表元素提供了相同的id。
问题内容: 我有一个有趣的查询需要做。我有一张表,其中有一列包含ip地址编号(使用)和一列。我希望能够计算每天有唯一IP地址列的数量。也就是说,每天有多少个不同的ip行。因此,例如,如果一个IP地址在同一天两次,则在最终计数中将计为1;但是,如果同一IP地址在另一天,则将被计算为第二个计数。 示例数据: 问题答案: SQLFiddle演示
问题内容: 我有一张桌子: 数据库的其余整个部分都用外键键入areaid。在此表中,有一个具有唯一约束的(区域,区域设置)索引。 问题是我有两条记录: 我需要在它们之间交换(region,locale)字段,这样我才能得出: 天真的方法行不通,因为它违反了区域和语言环境的唯一索引: 我怎样才能做到这一点?是否有原子方式进行交换?有什么建议吗? 问题答案: 您不能在SQL Server中推迟对多
问题内容: 我执行以下查询,由于某种原因,它没有替换数据库中的换行符。它说Rows匹配1,但没有变化。有什么问题吗? 问题答案: 您可以使用而不是匹配换行符。 代码: