按顺序在MySQL单元格的日期/时间字段中添加一秒,条件为

时间:2016-04-02 12:35:41

标签: mysql wordpress

它似乎工作正常,但我只是想确保这个查询能够达到预期的效果,因为我在MySQL中是一个绝对的菜鸟,并希望避免对我的数据库造成任何损害。

以下是我要找的内容:

该查询将在 wp_posts 表中搜索包含 附件 的行在 post_type 字段中,然后按 post_title 字段按升序对所有找到的行进行排序,最后进行任何更改。

例如

---------------------------------------------
post_date           | post_type  | post_title
---------------------------------------------
2016-04-02 15:00:00 | page       | C
---------------------------------------------
2016-04-02 15:00:01 | attachment | A
---------------------------------------------
2016-04-02 15:00:02 | attachment | E
---------------------------------------------
2016-04-02 15:00:03 | other      | D
---------------------------------------------
2016-04-02 15:00:04 | page       | B
---------------------------------------------

应该成为

---------------------------------------------
post_date           | post_type  | post_title
---------------------------------------------
2016-04-02 15:00:02 | page       | C
---------------------------------------------
2016-04-02 15:00:00 | attachment | A
---------------------------------------------
2016-04-02 15:00:03 | attachment | E
---------------------------------------------
2016-04-02 15:00:03 | other      | D
---------------------------------------------
2016-04-02 15:00:01 | page       | B
---------------------------------------------

post_title D的时间已被忽略,因为它不符合post_type,所有其他post_titles根据其按字母顺序升序获得新的时间条目。

此查询是否正确执行此操作?

set @mytime_post_date = -1;
update wp_posts set post_date = cast('2016-04-02 15:00:00' AS DATETIME) + interval (@mytime_post_date := @mytime_post_date + 1) second WHERE (post_type='attachment' OR post_type='page') ORDER BY post_title ASC;

感谢您https://stackoverflow.com/users/1491895/barmar对初始查询的帮助。 )

1 个答案:

答案 0 :(得分:1)

您的查询是正确的。祝你好运研究! )