mysql - SQL 如何在不使用 SQL 的情况下对来自列的任何 SQL 查询数据进行字符串替换

标签 mysql sql sql-server postgresql replace

我有一个表,其中有一列表示不同的水果名称 - 苹果、橙子、香蕉等。这些水果名称可以有重复。

现在,如果我执行 SQL Select,我会得到原样的名称。我想更改数据,以便每个“Apple”都替换为“Sweet Apple”,每个“Orange”都替换为“Mandarin”。

我知道我可以在 SQL 查询中使用 replace 函数。但是我不想/不能修改我的 SQL 查询。我试图将更改 SQL 作为最后的手段,因为这需要在几个不同的 Nodejs 脚本上完成。

我想知道数据库本身是否有某种方法可以使其自动返回这些更改的数据。有点像过滤器/管道/约束(我不知道该怎么调用它),它设置在表的特定列上,并使其自动为从此表查询的任何数据执行此替换功能。

我想要一个主要针对 Postgres 和 MySQL 的答案,如果可能的话,也想要针对 SQL Server 的答案。

最佳答案

不,最接近的是插入和更新上的触发器,以替换传入的数据,但如果不在查询中指定数据,则无法覆盖正在查询的数据。您可以创建一个 View 来显示替换的字符串。

关于mysql - SQL 如何在不使用 SQL 的情况下对来自列的任何 SQL 查询数据进行字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48308423/

相关文章:

mysql - 表不工作 : 1215. 无法添加外键约束

php - 尝试在 sql 查询中回显一些内容

mysql - 从 A 中找出存在于每个 B 中的值 C

php - .htaccess 重定向,url 中包含 mysql 内容

mysql - SQL/Mysql 查询数据库中可用的日期和时间

mysql - 关于带有空字符串的mysql where子句

sql - 当插入的值大于列长度时,插入到 SQL Server 表中的值不正确

sql - case when 语句中按列号对表进行排序

sql - 如果查询返回一行,如何选择一条记录,如果查询返回更多行,如何选择不记录?

sql - 如何用下一行的值替换空值