sql - SQLite 选择列中具有 NULL 的第一行并将该列更改为不同的值
问题描述
您好我有一个有点独特的问题我需要选择状态列中具有 NULL 的第一行并将其值更改为文本(处理)
为了澄清,我将在需要处理数据库条目的程序中使用 SQLite。这些列是 URL 名称状态
名称和 URL 不是我可以控制的。状态列用于程序所有新条目都带有 NULL 值我需要用文本(处理)标记第一个条目,然后程序将引用状态中值为(处理)的行列,完成后将其更改为 [FINISHED]
此外,我不想选择在 URL 列中也有 NULL 的任何行。
我试过这段代码只是它没有让我到任何地方
SELECT * FROM List WHERE Status IS NULL ORDER BY ROWID ASC LIMIT 1
update List set Status = replace ( Status, NULL ,'(processing)')
commit;
我绝对不想做的是同时更改列 Status 中的所有 NULL 值。只有第一个。
解决方案
您需要WHERE
在语句中添加一个子句UPDATE
:
UPDATE List
SET Status = '(processing)'
WHERE rowid = (SELECT MIN(rowid) FROM List WHERE Status IS NULL)
如果你也想要这个条件:
此外,我不想选择在 URL 列中也有 NULL 的任何行。
然后:
UPDATE List
SET Status = '(processing)'
WHERE rowid = (SELECT MIN(rowid) FROM List WHERE Status IS NULL)
AND URL IS NOT NULL
或者:
UPDATE List
SET Status = '(processing)'
WHERE rowid = (SELECT MIN(rowid) FROM List WHERE Status IS NULL AND URL IS NOT NULL)
推荐阅读
- anypoint-studio - 在 Mule4 中将 Http 响应数据设置为变量
- java - 一次更新多个 SQL 表 Java
- c# - 我应该通过 Mutex 排队 Nmodbus4 RTU 连接吗?
- angular - 如何在 Angular 10 应用程序中等待 rxjs/fromEvent() 的结果
- javascript - Chrome 扩展:获取 URL 时扩展上下文无效
- r - Bookdown preview_chapter
- python - Scrapy Xpath 选择器返回部分文本
- linux - 如何删除已编译的 Citadel?
- ios - Firebase 云消息传递的 FCM 令牌有时未注册
- python - Python [3.8.5] 中的 Turtle 模块不起作用