2012-10-09 51 views
1

我在嘗試將帖子的狀態從「繼承」更改爲「發佈」,但僅限於日期在08/01/2012之間的帖子& 10/08/2012。這將是適當的查詢來實現這一目標?根據日期範圍更改MySQL表中的值

UPDATE wp_posts set post_status = replace(post_content, 'inherit', 'published') WHERE post_date BETWEEN '2012/08/01 00:00:00.000' AND '2012/10/08 23:59:00.000' 

回答

1

如果post_status是一個值,你沒有必要做了REPLACE()就可以了。只需將其設置爲新值。和MySQL日期格式應爲YYYY-MM-DD HH:ii:ss2012-08-01 00:00:00

UPDATE 
    wp_posts 
/* Set to the new status */ 
SET post_status = 'published' 
WHERE 
    /* Include the old status in the WHERE clause */ 
    post_status = 'inherit' 
    AND post_date BETWEEN '2012-08-01 00:00:00' AND '2012-10-08 23:59:00' 

REPLACE()方法,雖然它會工作,將可能導致更慢的查詢,因爲替換操作將發生在行,但只實際上對包含字符串inherit的行有效。

+0

這工作得很好,謝謝你替換「替換()」的提示! – onestepcreative