是否可以使用子选择在mysql 5.0上运行UPDATE命令.
我想要运行的命令是这样的:
UPDATE book_details
SET live = 1
WHERE ISBN13 = '(SELECT ISBN13 FROM book_details_old WHERE live = 1)';
Run Code Online (Sandbox Code Playgroud)
ISBN13当前存储为字符串.
这应该是更新10k +行.
谢谢,
威廉
这有效,但我想删除冗余.有没有办法将更新与单个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) 基于每个表中的一个列相等(user_id),将多个行从另一个表更新为一个表.
两个表都有一user_id列.需要从数据插入t2到t1当user_id列相等.
提前感谢您提供的任何帮助.
我想在具有多个连接的语句中更新表.虽然我知道连接的顺序并不重要(除非你使用的是优化器提示),我命令它们以某种方式最直观地阅读.但是,这导致我想要更新的表不是我开始使用的表,并且我在更新它时遇到问题.
我想做的一个虚拟例子是:
UPDATE b
FROM tableA a
JOIN tableB b
ON a.a_id = b.a_id
JOIN tableC c
ON b.b_id = c.b_id
SET b.val = a.val+c.val
WHERE a.val > 10
AND c.val > 10;
Run Code Online (Sandbox Code Playgroud)
有许多关于使用联接进行更新的帖子,但是他们总是首先更新表.我知道这在SQL Server中是可能的,并且希望它在MySQL Too中可能!
我正在尝试更新postgresql数据库的表中的文本字段.
UPDATE public.table SET long_text = 'First Line' + CHAR(10) + 'Second line.' WHERE id = 19;
Run Code Online (Sandbox Code Playgroud)
我的预期结果是单元格看起来像这样:
First Line Second line
上面的语法返回错误.
在MySQL中,我想创建一个包含此查询中所有信息的新表:
select * into consultaa2 from SELECT
CONCAT( 'UPDATE customers SET
customers_default_address_id= ',
(SELECT a.address_book_id FROM
address_book a where
c.customers_id=a.customers_id order by
address_book_id desc limit 1), '
WHERE customers_id = ', customers_id,
';') AS sql_statement FROM customers c
where c.customers_id > 3894;
Run Code Online (Sandbox Code Playgroud)
查询太长,浏览器无法显示concat,我需要这个来进行更新.
我有一个数据表1/1,以1/20在一列.我希望值1到20,即'/'(正斜杠)之后的值更新到SQL Server中同一表中的其他列.
例:
列具有值1/1,1/2,1/3...1/20
新的Column值1,2,3,..20
即我想更新这个新专栏
提前致谢...!
以下查询中的评估顺序是什么:
UPDATE tbl SET q = q + 1, p = q;
Run Code Online (Sandbox Code Playgroud)
也就是说,将"tbl"."p"被设置为q或q + 1?此处的评估顺序是否受SQL标准的约束?
谢谢.
在考虑了Migs的回答之后,我对我能找到的所有数据库进行了一些测试.虽然我不知道标准是什么,但实施方式各不相同.
特定
CREATE TABLE tbl (p INT NOT NULL, q INT NOT NULL);
INSERT INTO tbl VALUES (1, 5); -- p := 1, q := 5
UPDATE tbl SET q = q + 1, p = q;
Run Code Online (Sandbox Code Playgroud)
我发现的价值"p"和"q"分别为:
database p q
-----------------+---+---
Firebird 2.1.3 | 6 | 6 -- But see …Run Code Online (Sandbox Code Playgroud) 愚蠢的问题:
在SQL中,我知道我能做到
UPDATE TableA SET MyColumn=NULL
Run Code Online (Sandbox Code Playgroud)
但是,我如何NULL以图形方式进入单元格?我尝试在MySQL查询浏览器中输入'null'和'NULL'以及'(没有/空字符串)但没有成功.
我想通过使用带注释的值更新queryset中的所有行.
我有一个简单的模型:
class Relation(models.Model):
rating = models.IntegerField(default=0)
class SignRelation(models.Model):
relation = models.ForeignKey(Relation, related_name='sign_relations')
rating = models.IntegerField(default=0)
Run Code Online (Sandbox Code Playgroud)
我想要解释这段代码:
for relation in Relation.objects.annotate(total_rating=Sum('sign_relations__rating')):
relation.rating = relation.total_rating or 0
relation.save()
Run Code Online (Sandbox Code Playgroud)
并使用以下内容更新一个SQL请求:
Relation.objects.update(rating=Sum('sign_relations__rating'))
Run Code Online (Sandbox Code Playgroud)
不起作用:
TypeError: int() argument must be a string or a number, not 'Sum'
Run Code Online (Sandbox Code Playgroud)
要么
Relation.objects.annotate(total_rating=Sum('sign_relations__rating')).update(rating=F('total_rating'))
Run Code Online (Sandbox Code Playgroud)
也不起作用:
DatabaseError: missing FROM-clause entry for table "relations_signrelation"
LINE 1: UPDATE "relations_relation" SET "rating" = SUM("relations_si...
Run Code Online (Sandbox Code Playgroud)
为此可以使用Django的ORM吗?没有关于在文档中一起使用update()和annotate()的信息.
sql-update ×10
sql ×5
mysql ×4
sql-server ×2
char ×1
django ×1
evaluation ×1
insert ×1
join ×1
oracle ×1
postgresql ×1
split ×1