我想在postgres做这样的事情:
UPDATE table1 SET (col1, col2) = (SELECT col2, col3 FROM othertable WHERE othertable.col1 = 123);
INSERT INTO table1 (col1, col2) VALUES (SELECT col1, col2 FROM othertable)
但是,即使使用文档中提到的postgres 9.0,也不可能获得第1点(http://www.postgresql.org/docs/9.0/static/sql-update.html)
点2似乎也不起作用.我收到以下错误:子查询必须只返回一列.
希望有人为我找到解决方法.否则查询将花费时间:(.
仅供参考:我正在尝试从多个表中选择不同的列并将它们存储到临时表中,以便其他应用程序可以轻松获取准备好的数据.
我正在寻找一种通过MySQL查询更新字符串的一部分的方法.
例如,如果我有10条记录都包含'string'作为字段值的一部分(即'something/string','something/stringlookhere','something/string/etcetera',有没有办法改变'字符串'通过一个查询为每一行'to'alvaluevalue',结果是'something/anothervalue','something/anothervaluelookhere','something/string/etcetera',有没有办法改变'anothervalue'
我想知道这是否可行.如果条件为真,我想更新列x,否则将更新列y
UPDATE table SET
(CASE (CONDITION) WHEN TRUE THEN columnx
ELSE columny
END)
= 25
Run Code Online (Sandbox Code Playgroud)
我搜索了一遍,尝试了一些东西,但无法找到解决方案.我认为这是不可能的,但我想我会问这里,看看是否有人之前做过.提前致谢.
理想情况下我想这样做:
UPDATE TOP (10) messages SET status=10 WHERE status=0 ORDER BY priority DESC;
Run Code Online (Sandbox Code Playgroud)
英文:我想从数据库中获取前10个可用(状态= 0)消息并锁定它们(状态= 10).应首先获得具有更高优先级的消息.
遗憾的是,MS SQL不允许更新中的order by子句.
无论如何如何规避这个?
PostgreSQL的8/9我的数据库驱动程序不返回的执行时,受影响的记录计数INSERT
或UPDATE
.
PostgreSQL提供非标准语法" RETURNING ",这似乎是一个很好的解决方法.但是语法可能是什么?该示例返回记录的ID,但我需要计数.
INSERT INTO经销商(做,DNAME)VALUES(DEFAULT 'XYZ小部件') RETURNING根本 ;
我正在尝试将数据库中的字段更新为其连接值的总和:
UPDATE P
SET extrasPrice = SUM(E.price)
FROM dbo.BookingPitchExtras AS E
INNER JOIN dbo.BookingPitches AS P ON E.pitchID = P.ID
AND P.bookingID = 1
WHERE E.[required] = 1
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我收到以下错误:
"An aggregate may not appear in the set list of an UPDATE statement."
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
当你运行类似于:
UPDATE table SET datetime = NOW();
Run Code Online (Sandbox Code Playgroud)
在具有1 000 000 000条记录的表上,查询需要10秒才能运行,所有行是否具有完全相同的时间(分钟和秒),还是会有不同的时间?换句话说,是时候是查询开始还是每行更新?
我正在运行MySQL,但我认为这适用于所有dbs.
我试图在MS-SQL上执行此操作,但只是在逐行返回错误
update #temp
Set Dos=Count(1)
From Temp_Table2010 s
where Id=s.Total and s.total in (Select Id from #temp)
group by s.Total
Run Code Online (Sandbox Code Playgroud)
有谁知道如何解决这个性能良好的问题.
这有效,但我想删除冗余.有没有办法将更新与单个select语句合并,所以我不必使用变量?
DECLARE
@OrgAddress1 varchar,
@OrgAddress2 varchar,
@OrgCity varchar,
@OrgState varchar,
@OrgZip varchar,
@DestAddress1 varchar,
@DestAddress2 varchar,
@DestCity varchar,
@DestState varchar,
@DestZip varchar
SELECT
@OrgAddress1 = OrgAddress,
@OrgAddress2 = OrgAddress2,
@OrgCity = OrgCity,
@OrgState = OrgState,
@OrgZip = OrgZip,
@DestAddress1 = DestAddress,
@DestAddress2 = DestAddress2,
@DestCity = DestCity,
@DestState = DestState,
@DestZip = DestZip
FROM
ProfilerTest.dbo.BookingDetails
WHERE
MyID=@MyID
UPDATE SHIPMENT
SET
OrgAddress1 = @OrgAddress1,
OrgAddress2 = @OrgAddress2,
OrgCity = @OrgCity,
OrgState = @OrgState,
OrgZip = @OrgZip,
DestAddress1 = @DestAddress1,
DestAddress2 = …
Run Code Online (Sandbox Code Playgroud) 任何使用过three.js的人都可以告诉我是否有可能检测到webgl支持,如果不存在,可以回退到标准的Canvas渲染吗?
sql ×9
sql-update ×9
mysql ×2
postgresql ×2
sql-server ×2
case ×1
datetime ×1
group-by ×1
html5-canvas ×1
javascript ×1
sql-order-by ×1
string ×1
sum ×1
t-sql ×1
three.js ×1
webgl ×1