葬空吟 2021-12-16 10:06 采纳率: 61%
浏览 24
已结题

MySQL replace 使用中出现了问题

SQL语句如下,需要对车型名称进行变换

SELECT REPLACE (REPLACE ( REPLACE ( REPLACE ( REPLACE ( 字段名, 'Q3', 'Audi Q3' ), '探岳', 'Tayron' ), 'Q3 Spb', 'Q3Spb' ), '探岳X', 'Tayron X ' ), 'GTE', 'Tayron' ) AS `carModel`,FROM表名

变换后车型名称问题不是我想要的,变换后的车型名称如下图所示

img

通过测试发现是因为原字段'Q3 Spb'中的Q3已经被REPLACE ( 字段名, 'Q3', 'Audi Q3' )替换,所以会变成Audi Q3Spb
现在的需求是怎样才能锁定当字段完全等于需要变化的内容时,才进行转换,而不是包含需要变化的内容就转换

请问这种情况应该怎么解决

  • 写回答

2条回答 默认 最新

  • 葬空吟 2021-12-16 15:23
    关注

    已自行解决,改用when...then...来解决

        CASE
                字段名 
                WHEN 'Coupe' THEN
                'Tayron X' 
                WHEN '探岳GTE' THEN
                'Tayron' 
                WHEN 'Q3 spb' THEN
                'Audi Q3Spb' 
                WHEN 'Q3spb' THEN
                'Audi Q3Spb' 
                WHEN 'Q3' THEN
                'Audi Q3' 
                WHEN '探岳' THEN
                'Tayron'
     ELSE 字段名 END 
            ) AS `carModel`,
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月24日
  • 已采纳回答 12月16日
  • 修改了问题 12月16日
  • 修改了问题 12月16日
  • 展开全部

悬赏问题

  • ¥30 Matlab打开默认名称带有/的光谱数据
  • ¥50 easyExcel模板 动态单元格合并列
  • ¥15 res.rows如何取值使用
  • ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
  • ¥15 CSP算法实现EEG特征提取,哪一步错了?
  • ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
  • ¥15 vue3前端取消收藏的不会引用collectId
  • ¥15 delphi7 HMAC_SHA256方式加密
  • ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
  • ¥15 下列c语言代码为何输出了多余的空格