首页 > 其他分享 >如何使用 Update in Case 语句和列作为别名

如何使用 Update in Case 语句和列作为别名

时间:2023-09-06 18:31:51浏览次数:41  
标签:Case 语句 name age Update UPDATE tmp CASE

在MySQL中,可以使用UPDATE和CASE语句来更新表中的数据,并且可以使用列别名来引用列。以下是一个示例,展示如何在UPDATE语句中使用CASE和列别名:

假设有一个名为users的表,包含idnameage列。

要根据条件更新age列,可以使用如下的UPDATE语句:

UPDATE users
SET age = CASE
    WHEN name = 'John' THEN 30
    WHEN name = 'Alice' THEN 25
    ELSE age
  END;

在这个例子中,当name等于'John'时,将age更新为30;当name等于'Alice'时,将age更新为25;否则,保持age不变。

如果要在UPDATE语句中使用列别名,可以使用内部查询或临时表来实现。以下是一个示例:

UPDATE users AS u
INNER JOIN (
  SELECT id, name, age AS new_age
  FROM users
) AS tmp ON u.id = tmp.id
SET u.age = CASE
    WHEN tmp.name = 'John' THEN tmp.new_age + 5
    WHEN tmp.name = 'Alice' THEN tmp.new_age - 5
    ELSE tmp.new_age
  END;

在这个例子中,我们使用内部查询来创建一个临时表tmp,将age列别名为new_age。然后,使用UPDATE语句和CASE语句根据条件更新主表usersage列。

需要注意的是,使用内部查询或临时表可能会对性能产生一些影响。在实际应用中,请根据数据规模和查询复杂性进行评估和测试。

标签:Case,语句,name,age,Update,UPDATE,tmp,CASE
From: https://blog.51cto.com/M82A1/7389400

相关文章

  • VMware vSphere 8.0 Update 2 下载地址(ESXi 8.0 U2 & vCenter Server 8.0 U2)
    ESXi8.0U2&vCenterServer8.0U2请访问原文链接:https://sysin.org/blog/vmware-vsphere-8-u2/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org企业级工作负载平台vSphere将云计算的优势引入本地部署工作负载。vSphere可提高性能和运维效率并加速创新。vSpher......
  • 数据库查询语句配例题(一)
    普通查询查询全部列数据语法:select*from表名;select-表示查询哪些字段from-表示来自哪些表*-表示所有列例:查询emp表中全部列数据:select*fromemp;查询指定列数据语法:select列名1,列名2,……from表名;例:查询student表中,学员编号(sid),姓名......
  • 软件测试|MySQL SELECT语句的详细使用
    简介MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了许多功能强大的SQL查询语句,其中最常用且最重要的是SELECT语句。SELECT语句用于从数据库表中检索数据,并根据给定的条件返回所需的结果集。在本文中,我们将深入探讨MySQLSELECT语句的各个方面,并提供一些示例来说明其用法。......
  • Android官方资料--OTA Updates
    OTAUpdatesINTHISDOCUMENTAndroiddevicelayoutLifeofanOTAupdateMigratingfromPreviousReleasesAndroiddevicesinthefieldcanreceiveandinstallover-the-air(OTA)updatestothesystemandapplicationsoftware.Deviceshaveaspecialrecove......
  • Android官方资料--A/B System Updates
    A/BSystemUpdatesINTHISDOCUMENTOverviewBootloaderstateexamplesUpdateEnginefeaturesLifeofanA/BupdatePost-installstepImplementationKernelpatchesKernelcommandlineargumentsRecoveryBuildvariablesPartitionsFstabKernelslotargumentsOTApacka......
  • android源码分析1--updater(l上)
    一install.cpp中调用updater:constchar*binary="/tmp/update_binary";constchar**args=(constchar**)malloc(sizeof(char*)*5);args[0]=binary;args[1]=EXPAND(RECOVERY_API_VERSION);//definedinAndroid.mkchar*temp=......
  • aosp源码分析 5.0 BlockImageUpdateFn
    block_image_update("/dev/block/bootdevice/by-name/system",package_extract_file("system.transfer.list"),"system.new.dat","system.patch.dat");//args://-blockdevice(orfile)tomodifyin-place......
  • ota升级包中update-script脚本的生成
    控制升级流程的主要逻辑,实际控制着升级过程中大部分重要操作的实施细节,而处于升级包中同目录下的update-bianry负责真正执行update-script记录的操作。 在负责生成升级包的脚本ota_from_target_files.py中,不论我们调用这个脚本来产生全量包,增量包,或者是安卓新加入的block方式的......
  • Proj CDeepFuzz Paper Reading: Invariance-inducing regularization using worst-cas
    Abstract本文:Task:1.proveinvariance-inducingregularizerscanincreasepredictiveaccuracyforworst-casespatialtransformations2.provethatonadversarialexamplesfromtransformationgroupsintheinfinitedatalimitrobusttrainingcanalsoimpro......
  • 2,mysql的常用查询语句
    一、数据库1,创建数据库createdatabasedatabase_name;数据库的Name的命名一般按照公司规范,例如:createdatabasedb_book;2,查看数据库Showdatabases;3,删除数据库Dropdatabasedatabase_name;例如:Dropdatabasedb_book;二、表结构的增删改1.,创建一个表C......