gpt4 book ai didi

MySQL CLAUSE可以变成一个值吗?

转载 作者:可可西里 更新时间:2023-11-01 07:22:06 34 4
gpt4 key购买 nike

我是 mysql 的新手。我要做的是创建一个新表,它是原始表的副本,在特定条件下多了一列。哪个条件出现为新列就是新表。我的意思是:

table 成为给定点 (x,y) 的序列 我想创建表 temp 为 (x,y,r) where r = x^ 2 + y^2<1 但是我做的是

CREATE temp LIKE table;
ALTER TABLE temp ADD r FLOAT;

INSERT INTO temp (x,y) SELECT * FROM table WHERE x*x+y*y<1;
UPDATE temp SET r=x*x+y*y;

没关系,它给出了我想要的,但我的数据库比这个简单的例子要大得多,在这里我在两个表中计算了半径 r 的两倍。优化不是很好。

有没有办法直接将子句传递到新列中?

提前致谢。

最佳答案

您(几乎)不应该将计算出的数据存储在数据库中。当计算值最终与计算它们的值不同步时,它最终会造成维护和应用程序的噩梦。

此时您可能会对自己说,“好吧,我会很好地保持它们的同步。”没关系,因为在某些时候,无论出于何种原因,它们都会不同步。

幸运的是,SQL 提供了一种很好的机制来处理您想要的 - View 。

CREATE VIEW temp
AS
SELECT
x,
y,
x*x + y*y AS r
FROM My_Table
WHERE
x*x + y*y < 1

关于MySQL CLAUSE可以变成一个值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34910400/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com