① sql怎么将查询排序后的数据更新到原本的表中
简单回答:不能,也不应该。
要依某个顺序查询,请加入明确的排序指令,否则系统就会依系统认为最方便高效的方式给你列出数据。
相关说明:
1、当前主流的使用SQL操作的数据数主要是Oracle、MS Sql Server等等。它们有一个共同的做法,就是用户不应对表中的物理记录的顺序进行关心。如果用户需要对查询出的记录进行排序的话,请加入排序指令,这样就能按用户的“心意”进行排序列出了。
2、之所以用户不应对表中的特理记录的顺序进行关心,那是因为通常情况下,一个表中的数据是会经常被更改、修正、删增的,如果每一次的改动都要将整个表的物理顺序进行修正的话,系统的运行效率就会严重低下。
3、如果你实在纠结,实在要在明确的排序指令的情况下查出的数据也按你的想法的顺序出来的话,一般来说,小的数据表你可以将原来的数据删除,然后重新追回进去。具体的做法类似于先SELECT,加order排序指令插入到临时表,然后删除原来表中的数据,然后insert临时表中的数据到原表中。注意的是,这种方法对数据量不大的表,多数情况下有效,但对大量数据的表,很可能无效,因为系统为了效率,会按它的“想法”去读写数据。
② sql查询出用户名后如何如果更新每个用户统计数据
上面的表 姓名是主键 不重复?如果是的话……
你先对下表 进行合计 查询 按姓名分组(Group By)时间为条件(where time beteen xx and xx) count(time) as 次……类似这样的……查询
然后 更新查询 把 表A 次数字段 更新到 上述查询的 次 ……where 表a.姓名 =……
这些 分段的语句 嵌套在一起就可以了……
看看下面的代码 能不能实现你的需要吧……
UPDATE 表A INNER JOIN [SELECT 表B.username, Count(表B.时间) AS 计数
FROM 表B
WHERE (((表B.时间) Between #1/10/2014# And #1/15/2014#))
GROUP BY 表B.username]. AS 合计 ON 表A.username = 合计.username SET 表A.次数 = 合计.[计数];
如果上面的代码 在你的机器上 无法运行的话 那么分步进行……
生成一个临时表
SELECT 表B.username, Count(表B.时间) AS 计数 INTO 表2
FROM 表B
WHERE (((表B.时间) Between #1/10/2014# And #1/15/2014#))
GROUP BY 表B.username;
然后再运行
UPDATE 表1 INNER JOIN 表2 ON 表1.username = 表2.username SET 表1.次数 = [表2].[计数];
③ mysql 我如何查询一批数据后,并更新这批数据
有时候我们会不小心对一个大表进行了 update,比如说写错了 where 条件......
此时,如果 kill 掉 update 线程,那回滚 undo log 需要不少时间。如果放置不管,也不知道 update 会持续多久。
那我们能知道 update 的进度么?
实验
我们先创建一个测试数据库:
那我们怎么准确的这个倍数呢?
一种方法是靠经验:update 语句的 where 中会扫描多少行,是否修改主键,是否修改唯一键,以这些条件来估算系数。
另一种方法就是在同样结构的较小的表上试验一下,获取倍数。
这样,我们就能准确估算一个大型 update 的进度了。
④ mysql如何实现先查询后更新的sql语句
UPDATE men_info as a INNER JOIN (select men_id,sum(amount) as amount from men_recharge_info where busin_type =1 and is_refund=0 and recharge_state=3 group by men_id) as b ON a.id=b.men_id SET a.total_recharge = b.amount;
⑤ 如何在同一个表中SQL查询条件后再修改同一字段的值
这是一个条件为子查询的更新语句,代码如下。
update a set meta_key=null
where post_id in(
select post_id from a
where meta_value=0.5
)and meta_key='start_see2'
⑥ SQL 怎么用查询结果更新列
t表 有没有 与 published_date 相关联的字段?
如果有的话。
UPDATE t
SET
t.AV_L = tmp.AV__L
FROM
t JOIN
(SELECT
published_date,
sum(case when access_complexity='low' then 1 else 0 end) as AV__L
from base_metrics,entry,cvss
where entry.PrimaryKey=cvss.ForeignKey and
cvss.PrimaryKey=base_metrics.PrimaryKey
group by published_date) AS tmp
ON (t.日期字段 = tmp.published_date);
⑦ SQL Server有表A,表B,查询后立马更新数据 求大神帮忙
先按照公式,把a表中的数值计算出来,然后关联更新数据。
UPDATE B
SET B.aa = x.counts ,
B.bb = (case when x.counts >=10 and x.counts<20 then 4
when x.counts>=20 then 5
else null end )
FROM B
JOIN
(SELECT a.id,
SUM(CASE
WHEN a.aa IN (0, 1) THEN
2
WHEN a.aa IS NULL THEN
4
END) counts
FROM A GROUP BY id) x ON b.id = x.id
⑧ sql查询 更新语句怎么写
1、首先需要打开sql server 数据库。
⑨ SQL查询并更新
stringsqlstr="selectID,日期,sum(1)"+"as次fromBwhere日期between'"
+dateTimePicker1.Value+"'and'"+dateTimePicker2.Value+"'groupbyID,日期orderby1";
根据需要可以该参数,但是不要改结构!这也是我研究了很久才弄出来的,有用就请采纳!