【问题标题】:How to use MySQL REPLACE with variables?如何使用带有变量的 MySQL REPLACE?
【发布时间】:2014-02-11 21:12:23
【问题描述】:

我知道 MySQL 的 REPLACE 可以与 INSERTUPDATE 查询一起使用,但是如何使用它替换声明变量中的字符串?

这是我正在尝试的代码,但它不起作用:

DECLARE genre_string VARCHAR(255);

SET genre_string = 'drama, thriller';

SET genre_string = REPLACE(genre_string,'drama','Drama');

SELECT genre_string;

我如何让它也适用于当前声明的变量?

【问题讨论】:

  • 你用的时候变量前面不用@吗?
  • 我明白你想要做什么,但我很难理解为什么。有时解决方案不是治疗症状,而是解决根本问题。为什么需要这样做?
  • 我正在导入一些数据,然后稍微清理一下字符串,然后再将它们插入其他地方.. 导入的数据来自 Excel 文件,是的,我可以在那里清理它,但是由于导入非常频繁,最好在这个 SP 中清理它,因为它会更快..
  • @Ahmad 我假设您有一些执行导入的程序。在那里进行字符串替换。或者做SELECT REPLACE('drama, thriller','drama','Drama'); 会产生同样的结果。然而,更重要的是,您不应该将多种类型添加到一个字段中,而应规范化您的数据。
  • 别担心最后一部分,存储过程稍后会拆分字符串并分别处理每个流派..源数据使用该结构,对此无能为力..跨度>

标签: mysql replace


【解决方案1】:

以下对我有用:

DECLARE @genre_string VARCHAR(255);

SET @genre_string = 'drama, thriller';

SET @genre_string = REPLACE(@genre_string,'drama','Drama');

SELECT @genre_string

【讨论】:

  • @ 用于使用定义的变量,不应声明。您的最后三行将单独工作。你只需要声明局部变量。
  • 我忘了在REPLACE前面使用genre_string =,这导致了问题:)
猜你喜欢
  • 2017-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-14
  • 2011-06-08
  • 2019-10-05
  • 2015-05-23
相关资源
最近更新 更多