【发布时间】:2012-04-21 14:45:16
【问题描述】:
我希望通过平均该行之前和之后最近 id 的日期来更新 date 列为 NULL 的行。
在下面的数据中,它会将 ID 为 26 的行更新为 2011-10-19
什么 MySQL 语句可以完成这个?
附加说明:
数据看起来像这样:
id date title
--------------------------------------------
12 2011-09-01 Example One
23 2011-10-02 Example Two
26 NULL Example Three
27 2011-11-05 Example Four
29 2012-01-05 Example Five
37 NULL Example Six
38 2012-02-03 Example Seven
--------------------------------------------
我不想使用过程。
到目前为止,我已经...
UPDATE `table`
SET `date`=
(AVG(
(SELECT `date` FROM `table` WHERE `id`< ID_OF_PARENT_QUERY AND `date` IS NOT NULL LIMIT 1),
(SELECT `date` FROM `table` WHERE `id`> ID_OF_PARENT_QUERY AND `date` IS NOT NULL LIMIT 1)
))
WHERE `date` IS NULL
【问题讨论】:
-
你可以有多个连续的
NULL值吗?如果是这样,您将如何进行? -
@MostyMostacho - 是的。我想找到最近的行(通过唯一 ID),其中有一个
date值集。
标签: mysql date window-functions