SQLite 选择列中具有 NULL 的第一行并将该列更改为不同的值
SQLite Selecting the first row who has a NULL in a column and changing that column to a different value
你好,我有一个有点独特的问题,我需要 select Status 列中具有 NULL 的第一行,并将其值更改为文本(处理中)
澄清一下,我将在需要处理数据库条目的程序中使用 SQLite。
这些列是
URL
姓名
状态
名字和URL不是我能控制的。
Status 列用于程序,所有新条目都带有 NULL 值,我需要用文本 (processing) 标记第一个条目,然后程序将引用状态中值为 (processing) 的行列,完成后将其更改为 [FINISHED]
此外,我不想 select 任何在 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 值。只有第一个。
您需要在 UPDATE
语句中使用 WHERE
子句:
UPDATE List
SET Status = '(processing)'
WHERE rowid = (SELECT MIN(rowid) FROM List WHERE Status IS NULL)
如果你也想要这个条件:
Also I don't want to select any row that also has NULL in the URL
column.
然后:
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)
你好,我有一个有点独特的问题,我需要 select Status 列中具有 NULL 的第一行,并将其值更改为文本(处理中)
澄清一下,我将在需要处理数据库条目的程序中使用 SQLite。 这些列是 URL 姓名 状态
名字和URL不是我能控制的。 Status 列用于程序,所有新条目都带有 NULL 值,我需要用文本 (processing) 标记第一个条目,然后程序将引用状态中值为 (processing) 的行列,完成后将其更改为 [FINISHED]
此外,我不想 select 任何在 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 值。只有第一个。
您需要在 UPDATE
语句中使用 WHERE
子句:
UPDATE List
SET Status = '(processing)'
WHERE rowid = (SELECT MIN(rowid) FROM List WHERE Status IS NULL)
如果你也想要这个条件:
Also I don't want to select any row that also has NULL in the URL column.
然后:
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)