通过查询更新 ID NAME VALUE X1 A 10 02 B 12 03 C 15 04 D 20 0以B为标准 查询数据库的所有数据 通过VALUE值计算 更新X值 A 的x值更新为-20 A 的x值更新为0A 的x值更新为30A 的x值更新为70 这样的SQL语句怎么实现?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 A 的x值更新为-20 B 的x值更新为0C 的x值更新为30D 的x值更新为70 mysql> select * from tangyu477;+------+------+-------+------+| id | name | value | X |+------+------+-------+------+| 1 | A | 10 | 0 || 2 | B | 12 | 0 || 3 | C | 15 | 0 || 4 | D | 20 | 0 |+------+------+-------+------+4 rows in set (0.00 sec)mysql> update tangyu477 a , (select VALUE from tangyu477 where NAME='B') b -> set a.x=(a.value-b.value)*10;Query OK, 3 rows affected (0.05 sec)Rows matched: 4 Changed: 3 Warnings: 0mysql> select * from tangyu477;+------+------+-------+------+| id | name | value | X |+------+------+-------+------+| 1 | A | 10 | -20 || 2 | B | 12 | 0 || 3 | C | 15 | 30 || 4 | D | 20 | 80 |+------+------+-------+------+4 rows in set (0.00 sec)mysql> 顺便问下 SQL是不是基本可以解决大部分编程要做的事情?? 回答显然不是否则还需要编程语言工具做什么呢? 并且即使有些任务可以用SQL语句来实现也未必是最佳的,很多情况下反而不如在程序中实现更高效。 我的理解是 程序实现趋向横向的 SQL实现更趋向竖着来不知道我的理解 正确不?程序: A-B-C-D-SQL: A-B A-B A-B我问的这种更适合SQL吧 程序实现起来 一看就是效率慢帖子加分 希望你不吝赐教 没看懂你的这个程序是指什么。程序: A-B-C-D-SQL: A-B A-B A-B仅对你在一楼提出的这个问题,用SQL语句显然效率比较高。 那能否帮我举个例子 什么样的情况下 用编程比SQL更好,比SQL的效率更好 比如MYSQL中,由于没有ROWNUM函数。这样想显示这个序号则不如由程序来实现效率高。还有那种行列互换的显示,由程序实现更方便。 参考一下这两个贴子。http://blog.csdn.net/ACMAIN_CHM/archive/2009/06/19/4283943.aspxhttp://blog.csdn.net/ACMAIN_CHM/archive/2009/04/20/4095531.aspx 这个存储过程有什么哪里有错?运行不报错具体地方! 在字符串中删除子字符串,请高手解答。 mysql sql语句整数做过除法之后的排序出了问题? 如何在Linux下修复mysql数据库? 求一条查询语句,列名:test(varchar).我想查找列出符合该字段中所有包含"good"的子串; mysql使用脚本的时候load文本到表里的时候,怎么第一个字段会缺少前面的几个字符呢? 寻找中文教程!一定给分!!! 取得自动增长字段的值? dbc取mysql数据库中文乱码问题,求大神解惑! 看下这个mysql的存储过程游标,为什么报第三行错误恩 mysql重连接 mysql 数据延时问题
B 的x值更新为0
C 的x值更新为30
D 的x值更新为70
+------+------+-------+------+
| id | name | value | X |
+------+------+-------+------+
| 1 | A | 10 | 0 |
| 2 | B | 12 | 0 |
| 3 | C | 15 | 0 |
| 4 | D | 20 | 0 |
+------+------+-------+------+
4 rows in set (0.00 sec)mysql> update tangyu477 a , (select VALUE from tangyu477 where NAME='B') b
-> set a.x=(a.value-b.value)*10;
Query OK, 3 rows affected (0.05 sec)
Rows matched: 4 Changed: 3 Warnings: 0mysql> select * from tangyu477;
+------+------+-------+------+
| id | name | value | X |
+------+------+-------+------+
| 1 | A | 10 | -20 |
| 2 | B | 12 | 0 |
| 3 | C | 15 | 30 |
| 4 | D | 20 | 80 |
+------+------+-------+------+
4 rows in set (0.00 sec)mysql>
顺便问下 SQL是不是基本可以解决大部分编程要做的事情??
不知道我的理解 正确不?
程序: A-B-C-D-
SQL: A-B A-B A-B我问的这种更适合SQL吧 程序实现起来 一看就是效率慢帖子加分 希望你不吝赐教
程序: A-B-C-D-
SQL: A-B A-B A-B仅对你在一楼提出的这个问题,用SQL语句显然效率比较高。
那能否帮我举个例子 什么样的情况下 用编程比SQL更好,比SQL的效率更好
还有那种行列互换的显示,由程序实现更方便。