【发布时间】:2010-09-08 21:31:36
【问题描述】:
不确定是否可行,但值得一试。我正在尝试在 MySQL 的“文本”字段中插入一些文本。文本中的一些单词我想根据其他表中的其他字段进行更改在 MySQL 数据库中.. 类似于 php 电子邮件模板的东西,其中“亲爱的 ${first_name}”可以根据电子邮件发送给谁来更改...
这样的事情可以在 MySQL 表的字段中完成吗?
我知道这可以使用 PHP 文件完成,但我想知道这是否可以使用 MySQL 完成..
【问题讨论】:
不确定是否可行,但值得一试。我正在尝试在 MySQL 的“文本”字段中插入一些文本。文本中的一些单词我想根据其他表中的其他字段进行更改在 MySQL 数据库中.. 类似于 php 电子邮件模板的东西,其中“亲爱的 ${first_name}”可以根据电子邮件发送给谁来更改...
这样的事情可以在 MySQL 表的字段中完成吗?
我知道这可以使用 PHP 文件完成,但我想知道这是否可以使用 MySQL 完成..
【问题讨论】:
是的,我猜你可以做到这一点,使用存储过程。
它必须有一个 REPEAT 循环,该循环使用 LOCATE 来查找下一个 '${' 令牌的字符串索引,从那里获取名称直到下一个 LOCATEd '}',并替换CONCAT 和 SUBSTRING 的值。如果该值来自一个简单的名称到值查找表,这还不错,但是如果您希望 ${first_name} 实际使用名为 first_name 的列,则必须在字符串中创建一些动态 SQL 并使用PREPARE...EXECUTE,又丑又危险。
这将是复杂、脆弱且依赖于 DBMS 的。 SQL 的设计并不是为了方便字符串摆弄。任何具有合理字符串操作功能的通用编程语言都应该能够以更直接的方式来完成它。如果您有可用的 PHP,请使用它。
【讨论】: