MySQL CLAUSE可以成为一个值吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL CLAUSE可以成为一个值吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1162字,纯文字阅读大概需要2分钟。
内容图文
![MySQL CLAUSE可以成为一个值吗?](/upload/InfoBanner/zyjiaocheng/909/1cd9d81467874617b82d6854b0d1d99b.jpg)
我是mysql的新手.我要做的是创建一个新表,它是原始一个表的副本,在特定条件下还有一个列.哪个条件显示为新列是新表.我的意思是:
让table为给定点(x,y)的序列我想创建表temp(x,y,r),其中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的两倍.优化并不是那么好.
有没有办法直接将子句传递给新列?
提前致谢.
解决方法:
您实际上不需要担心两次计算.执行插入和更新会产生更多开销.所以,你应该同时进行这些计算.
MySQL扩展了having子句的使用,所以这很容易:
CREATE temp LIKE table;
ALTER TABLE temp ADD r FLOAT;
INSERT INTO temp(x, y, r)
SELECT x, y, x*x+y*y as r
FROM table
HAVING r < 1;
很可能实际上不需要额外的表,但这取决于您使用数据的方式.例如,如果你有相当复杂的处理并且多次引用temp并且temp比原始数据小,那么这可能是一个有用的优化.
此外,在表格中实现计算不仅节省了时间(当计算成本高时,这不是),但它也允许在计算值上建立索引 – 这是MySQL无法做到的.
就个人而言,我的偏好是更复杂的查询,而不是大量的临时表.与许多极端事物一样,最好的解决方案通常在于中间(好吧,不是真正在中间,但临时表并不都是坏事).
内容总结
以上是互联网集市为您收集整理的MySQL CLAUSE可以成为一个值吗?全部内容,希望文章能够帮你解决MySQL CLAUSE可以成为一个值吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。