我有一个包含API密钥列表的数据库。我需要将电子邮件和名称与这些相关联。我希望我的查询更新第一行的名称和电子邮件,其中包含null作为电子邮件。
id key name email
'1', '3046GUGYi7ab', NULL, NULL
'2', 'TXQzL33HVp1W', NULL, NULL
'3', 'YIK6DAnTVU4n', NULL, NULL
我的尝试就是这样,但显然,你不能在子查询中使用相同的表。
UPDATE key_table
set email="test@x.com", `name`="test"
where id = (Select min(id) from key_table
where email=null);
我确定这有一个简单的灵魂吗?有什么想法吗?
答案 0 :(得分:1)
我的尝试就是这样,但显然,你不能在一个表中使用同一个表 子查询。
UPDATE key_table
set email="test@x.com", `name`="test"
where id = (Select min(id) from key_table
where email=null);
如果使用相同的表名,则需要将内部查询包装在额外的子查询中。
下面的查询应该有效。
<强>查询强>
UPDATE
key_table
SET
email = "test@x.com"
, name = "test"
WHERE
id = (
SELECT
min_id
FROM (
SELECT
MIN(id) AS min_id
FROM
key_table
WHERE
email IS NULL
)
AS key_table
)
答案 1 :(得分:0)
试试这个
DT2[DT2[[eval(x)]]=="b",]
Empty data.table (0 rows) of 3 cols: x2,y,v
这只会影响第一行并更改值
希望这有帮助