mysql - 将函数绑定(bind)到 MySQL 中的列

标签 mysql sql user-defined-functions

我想将一个 MySQL 函数 (UDF) 绑定(bind)到表中的一个列,其中该列将充当该函数的别名,并返回它的值。

伪代码示例可能比文字更好地解释这一点。

TABLE example (
    ...
    col_x => int,
    col_y => int,
    col_sum => function() { return SUM(col_x + col_y}
);

我希望能够做的是:

SELECT col_sum FROM example WHERE...;

col_x = 3col_y = 5 的行应该使 SELECT col_sum 返回 8。

我知道在查询本身中执行此操作非常简单,但在这种情况下,我试图在不重写大量现有代码的情况下修复项目中的错误。

我目前使用的是 MySQL 5.5。

(我尝试用谷歌搜索这个,但到目前为止我只是得到关于在我的查询中使用 UDF 的结果,这没有帮助。)

最佳答案

可以使用 View 吗?

create view v_table as
    select (colx + coly) as colsum, t.*
    from "table" t;

一种可能是将原始表实际重命名为_table,然后使用原始表名创建 View :

rename table "table" to "_table";

create view "table" as
    select (colx + coly) as colsum, t.*
    from "_table" t;

关于mysql - 将函数绑定(bind)到 MySQL 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18739464/

相关文章:

mysql - "TableB.Date"中的未知列 'having clause'

mysql - 错误 : Error 1215: Cannot add foreign key constraint when no foreign constraint being added

php - 如何更新字段以将值添加到现有值?

sql - 我可以在包含 NVARCHAR(MAX) 字段的表上放置聚集列存储索引吗?

sql - 在grails中使用rows()方法调用SQL存储过程?

postgresql - 在 PostgreSQL 中找不到函数

apache-spark - 列表上的 Spark 数据帧操作返回 [Ljava.lang.Object;@]

python - Pyspark 未记录到文件

php - 下拉菜单数据数组

java - Hibernate native 查询可选参数抛出 'operator does not exist: bigint = bytea'