过期域名预定抢注

 找回密碼
 免费注册

20個wordpress sql數據庫查詢語句

[複製鏈接]
發表於 2011-3-31 14:20:47 | 顯示全部樓層 |閱讀模式
  WordPress將其所有信息片段(包括文章、頁面、評論、Blog鏈接、插件設置等)存儲在MySQL數據庫中。 雖然WordPress用戶可以通過網站後台編輯控制以上信息片段。 在一定程度上。
4 A) l/ B- z6 ]1 z. s% l# y
& y* O/ C; k7 O4 J. U# [  不過假設你的WordPress網站上有成百上千篇文章,而你需要進行全站範圍的改動, 這時從後台逐條編輯就有點費時費力了,並且犯錯的幾率也會提高。 最好的方法是進入WordPress的MySQL數據庫執行必要的查詢(改動)。 通過MySQL可以迅速地完成以上任務,為你節省更多時間。
1 n7 Y. W0 S! v' `8 x
& ~  x; ~0 I6 S" h. B  下面要介紹的就是一些省時省力的WordPress SQL查詢方法。( n# f9 b3 ^3 f/ L7 C/ g
- Q6 j- {5 W7 k& N0 H# j
  事先備份
7 {3 S/ `: E. E7 I. }0 T( \' J- ]% P6 \( L* R" ]& n
  WordPress數據庫裡存儲了你精心發表的每一篇文章,來自你的讀者的所有評論,以及你對自己網站進行的所有個性化設置。 因此,無論你對自己有多自信,都請記住一定要事先備份WordPress數據庫。 你可以通過備份插件進行備份。6 c0 W4 `  b' V" ?9 ?

/ o" x% |6 J1 t( u8 T6 D3 q2 j  為所有文章和頁面添加自定義字段  g5 K! W+ k- ~5 G' M$ Z: r7 l

1 j$ M4 B6 A1 Z. G! U- \7 K  這段代碼可以為WordPress數據庫內所有文章和頁面添加一個自定義字段。 你需要做的就是把代碼中的『UniversalCutomField『替換成你需要的文字,然後把『MyValue『改成需要的值。
- P: f. \# r2 R0 K8 W. G' A7 t: w& c% R( d: w$ d2 A
以下為引用的內容:3 D. l6 c  R0 h% E2 K

# E9 J2 Q$ W: ~& R8 RINSERT INTO wp_postmeta  (post_id, meta_key, meta_value)# v( E% o# D: D7 Z1 t% q3 T; ^* I
SELECT ID AS post_id,  'UniversalCustomField'6 e2 j1 R) d- }, a( B
AS meta_key 'MyValue AS  meta_value FROM wp_postsWHERE ID NOT IN (SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField');  6 V+ B6 D+ e8 x; Y3 q) n
: r5 H  h) B- Y
5 T7 X$ y; x& G2 N  ~) W3 l# H
  如果只需要為文章添加自定義字段,可以使用下面這段代碼:
! w  I2 N' H9 J% L4 [3 }, J1 b$ ~& q* N/ M
以下為引用的內容:
0 {8 d1 W! G" ^0 Y( o0 A
7 R' e+ Z+ X6 ~* [! I% T" W, V5 ?! LINSERT INTO wp_postmeta  (post_id, meta_key, meta_value)6 y+ U; i0 j) L
SELECT ID AS post_id,  'UniversalCustomField'
/ d" c; `. e6 m9 W- [1 OAS meta_key 'MyValue AS  meta_value- J' ~0 [6 a6 F5 b  k% O% k' ?
FROM  wp_posts WHERE ID NOT IN
* ^. h9 o' }/ |/ P(SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')`` AND post_type = 'post';  ! C0 F8 }1 B8 u4 M$ F

+ Z; a6 S; {) z# M% _( T! k& e; P: T# v: x
  如果只需要為頁面添加自定義字段,可以使用下面這段代碼:
! z. h$ {4 T" u- U" m9 P: @5 W- T8 @* O, z* o6 W
以下為引用的內容:
" e, y8 P  z! V/ E/ H* f- j2 x
- S3 v5 g/ }) n  d+ o8 G5 KINSERT INTO wp_postmeta  (post_id, meta_key, meta_value); J1 {2 [, ^' G- g3 W) s
SELECT ID AS post_id,  'UniversalCustomField'0 n" Z& e' e9 m. I( \
AS meta_key 'MyValue AS  meta_value6 c" W& z4 l, O7 C! a2 \* \  ~" i
FROM  wp_posts WHERE ID NOT IN$ a4 [& q- a0 ]2 p2 a6 O5 [- h5 J
(SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')AND `post_type` = 'page';) t8 M' @$ W) i; ]/ \& E! V* @# R

. s$ q' M# p9 G8 y. [/ C- E1 E6 j% m3 p4 \: |# G

2 }* R9 s) ^  I* t/ |  刪除文章meta數據6 n5 u& k$ G5 {- T: f
* R* c" z" u* G7 b
  當你安裝或刪除插件時,系統通過文章meta標籤存儲數據。 插件被刪除後,數據依然會存留在post_meta表中,當然這時你已經不再需要這些數據,完全可以刪除之。 記住在運行查詢前把代碼裡的『YourMetaKey『替換成你需要的相應值。' W6 a- j* {$ o# G
) m4 k, b, e) c( Y; v
以下為引用的內容:
; G) i% M$ d1 t) R+ nDELETE FROM  wp_postmeta WHERE meta_key = 'YourMetaKey';
/ }* n! M0 ^3 _( @9 a# J! _8 K. t8 g$ {
! d. S1 i" a9 o% r7 `3 Z; p% i* U! {
  查找無用標籤
9 x% A3 ]& P" j8 Z( ~8 r3 j( e6 I2 r9 ^
  如果你在WordPress數據庫裡執行查詢刪除舊文章,和之前刪除插件時的情況一樣,文章所屬標籤會留在數據庫裡,並且還會出現在標籤列表/標籤雲裡。 下面的查詢可以幫你找出無用的標籤。
1 Y0 I5 f. Y) _. I1 o( J+ E+ M  ~% o
以下為引用的內容:
. b5 ~; A/ a; t; S; d+ B( [# f
* t! @7 c8 j  QSELECT * From wp_terms wtINNER JOIN  wp_term_taxonomy wtt ON wt.term_id=wtt.term_id , o1 z2 X- F0 q/ x
WHERE wtt.taxonomy='post_tag'  AND wtt.count=0; 6 R1 P# c+ I& c: |4 K4 v

% F9 |: @4 _8 ~$ G; w: M7 D+ ]/ \7 b3 y) o$ N3 z9 W
  批量刪除垃圾評論% y/ O* z. s. B! O3 o
+ j, ?' I3 v' Z& k) k
  執行以下SQL命令:8 f1 c0 `6 N& f( T
" R/ F( E4 z8 C- y
以下為引用的內容:' Z  K$ w; W) z; I; G+ g1 Y- ~
DELETE FROM  wp_comments WHERE wp_comments.comment_approved = 'spam';
& u) G& |7 U) R6 ~0 p4 ?
/ {* L7 N, F% ^
, U' w, i1 w0 U' W
: `2 e  H  u4 ?+ B: P& i/ }  批量刪除所有未審核評論
" L- F# ~" S% I6 v: F
( M/ N. O( {, h( I+ C  這個SQL查詢會刪除你的網站上所有未審核評論,不影響已審核評論。
( a0 v  y$ Y- U2 m5 A
" H4 P/ @% S5 w; }以下為引用的內容:
8 u- n0 p- z' ]( IDELETE FROM  wp_comments WHERE comment_approved = 0 4 m9 U. f/ [4 k3 v) A

. j: D: F' K7 f' F5 r6 ?, ~7 A5 P& R" {
  禁止評論較早文章
& v: U" b1 g/ G- p' Q9 u6 \# ?0 N( q( [! Y
  指定comment_status的值為open、closed或registered_only。 此外還需要設置日期(修改代碼中的2010-01-01):, g$ Y8 I9 e. a" O0 K$ |  w

8 B/ x+ X2 Q1 |0 j* P; V以下為引用的內容:1 J$ h5 D6 I; v( C1 x, G% X
UPDATE wp_posts  SET comment_status = 'closed' WHERE post_date  < '2010-01-01' AND post_status = 'publish';  
7 A( ?  @  f2 R7 r) @  f. ]' b; Z5 }$ R  b4 y1 R% X

! V. ?  I7 t9 _  B4 K  停用/激活trackback與pingback
4 O; {2 T5 q7 j2 m: ^, A4 i- X# Y8 J9 Q& j* G
        指定comment_status的值為open、closed或registered_only。
/ B8 v! T$ p; J- M7 @+ [( |
$ a  o5 Z/ W1 _1 n( l  向所有用戶激活pingbacks/trackbacks:& ?" `$ p; l0 N

5 Y; V) h- G) S- Y: j以下為引用的內容:# q6 i8 k2 v" B; R$ G
UPDATE wp_posts SET ping_status = 'open';
% a" ?' J8 `0 u, b. Y5 S1 H
( t4 D, ~9 T" e4 }* y0 U4 N2 {3 r. F
# p; S& X* B' k$ o  N0 n  向所有用戶禁用pingbacks/trackbacks:
9 [! E$ w6 a& ^4 o. A$ w1 x; n5 O, G0 U3 T! t: R
以下為引用的內容:' ~" _1 r& M6 E0 D
UPDATE wp_posts SET ping_status = 'closed';  , h2 C1 m, p% V  {5 v6 ?1 v; v

3 H$ q- U4 q2 Y! I4 A" e: N0 {' X
( e% q) x0 Z5 V  d- l  激活/停用某一日期前的Pingbacks & Trackbacks
, j6 l: l+ w, M3 G' Z9 X, z
" ~% X( m/ }, r/ b: }6 }  指定ping_status的值為open、closed或registered_only。 此外還需要設置日期(修改代碼中的2010-01-01):7 I, G& v( ^6 n9 _6 A' y+ o
2 A( k7 i3 `% b" K* D
以下為引用的內容:
0 B7 H& T8 ^: P. H; r7 F5 l2 ^4 \, jUPDATE wp_posts  SET ping_status = 'closed' WHERE post_date  < '2010-01-01' AND post_status = 'publish';
  Q& q! H0 _( o% f/ r. J: h
9 h, w% W5 E6 V& {* j. s
. ^" o3 S# V" J( m, ^  刪除特定URL的評論( Y, g9 R' Z- [/ A$ D
% `5 m9 g. w" f  d9 P( b; {/ O( \
  當你發現很多垃圾評論都帶有相同的URL鏈接,可以利用下面的查詢一次性刪除這些評論。%表示含有「%」符號內字符串的所有URL都將被刪除。
$ e: e- f8 d" R, k! j' F. H- D) K- ?  y% {  g$ a
以下為引用的內容:
; Z8 P" Y# F% t: L$ k* fDELETE from  wp_comments WHERE comment_author_url LIKE "%nastyspamurl%"  ;   a3 H, e# K: a3 X. m

  e6 J; M: x) w; a
0 w* x* {- Z. f3 C3 |: R  識別並刪除「X」天前的文章& ]+ m  w2 q& U! W0 V" ]

8 f; h% T% U/ V. C- Y  查找「X」天前的所有文章(注意把X替換成相應數值):
% }/ a: M- S8 [- d3 \5 L0 ?3 i" L; o" H! F, }9 O7 l% l
以下為引用的內容:" w3 {# o) H1 K5 r& W4 f: f( c
$ `! W' I1 V5 |+ E8 z# ?
SELECT * FROM `wp_posts`
7 N6 a9 e/ g, y3 q5 U3 z; XWHERE `post_type`  = 'post'AND DATEDIFF(NOW(),  `post_date`) > X  # _( g  ~/ l/ @
6 n3 e! j  \7 U3 F+ s9 l& e6 u

& c7 A) B; }. E' l- u  刪除「X」天前的所有文章:, t! g1 [# `. T& Q1 n, d
2 c* B5 B) u  d' b! ^/ A+ X; x
以下為引用的內容:
3 O) [. {- w7 H- q& `. Q6 y1 Z& ^
DELETE FROM `wp_posts`; o5 v; v0 u: z+ D
WHERE `post_type`  = 'post'AND DATEDIFF(NOW(),  `post_date`) > X- ~( ]& U1 h+ |% p& F7 m
/ l2 c0 c3 s# S% h# @$ {
7 e9 h: D! r" B: z$ N& w& h* [6 Y

0 _/ w0 L. ?3 D+ `  刪除不需要的短代碼
, U, u' q$ ]( X1 n! G- |. ]' l
0 X+ V9 a# O1 g7 b) M# ^6 w: n  當你決定不再使用短代碼時,它們不會自動消失。你可以用一個簡單的SQL查詢命令刪除所有不需要的短代碼。 把「tweet」替換成相應短代碼名稱:
0 T4 G* @& F4 {' z4 s: q& V
4 P7 ~  r$ N; Y+ j. h0 R以下為引用的內容:* n! B3 T) A0 `, i$ W
UPDATE wp_post  SET post_content = replace(post_content, '[tweet]', '' )  ;
" W: I; w, g1 d% y% d3 s/ i. h5 {7 o8 w3 ^
/ y* {" l2 R! K" k( x( g' K
  將文章轉為頁面
3 B& W4 S- q: d5 j& }6 l% t( M6 }4 P3 y3 v% U/ u
  依然只要通過PHPMyAdmin運行一個SQL查詢就可以搞定:
4 V5 v, i. Z+ o8 q% X- H
& q+ E3 p3 U5 Y2 f' T  R: c以下為引用的內容:
  a9 L( [% M: r& H3 c5 {UPDATE wp_posts  SET post_type = 'page' WHERE post_type =  'post'
+ P# ^; O9 x4 X4 O6 H( H3 e
! V0 j. U- I! ?
+ x% a+ F& q. h) Q; i( S6 z6 r  將頁面轉換成文章:
6 I7 H' s2 x' u, ]# }9 P
( b7 o! e& N8 v8 t0 T: M, G& E以下為引用的內容:- ~$ Z9 W, a. M. i
UPDATE wp_posts  SET post_type = 'post' WHERE post_type =  'page'
" ^/ l  O6 V% j. R
5 h/ a) A* a1 G) I* `& F# Q- {2 o- }7 [
  更改所有文章上的作者屬性
/ ?$ p# p! \8 s' L2 x* _  K  I4 c. X
  首先通過下面的SQL命令檢索作者的ID:
2 o1 `2 H- X  y+ E- s5 v, x, H
2 M+ V8 }+ k. Q6 S7 ?以下為引用的內容:
) ^3 F% i2 }- q  g! l3 ASELECT ID,  display_name FROM wp_users; 0 P: t$ _$ w+ C% P4 i0 G

4 I- e$ A) M9 {1 L4 L7 w- w$ m! h2 P- D, s
  成功獲取該作者的新舊ID後,插入以下命令,記住用新作者ID替換NEW_AUTHOR_ID,舊作者ID替換OLD_AUTHOR_ID。  O- m9 n+ o: T5 ~) [( ?. K; v

( Q, s: {" ?9 A  }+ o- `以下為引用的內容:+ k; S! y% B. Q3 E; @7 ^
UPDATE wp_posts  SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID; 4 u  p5 g* [. @5 o( _  d. D5 i" `+ L
& R; \3 _+ N" j, q. I% S$ A& Z

6 D3 M/ ?/ m' I2 o# E6 ^6 q+ n. h' b     批量刪除文章修訂歷史
! e% r. t2 w5 Y. R3 w4 T5 Z' i& I5 d9 \8 z
  文章修訂歷史保存可以很實用,也可以很讓人煩惱。 你可以手動刪除修訂歷史,也可以利用SQL查詢給自己節省時間。+ }, ^- _$ X* {$ \: ^: m7 u

4 g1 I* A8 p* r& i5 U5 `+ p以下為引用的內容:; |4 w/ C5 A6 f+ Y; o
DELETE FROM  wp_posts WHERE post_type = "revision";
2 S/ A3 R7 Q8 M, w+ T$ M0 Y
) R  @- Q  z! [8 f2 I8 |8 x" m; M, N2 q7 y: S8 e! `3 h3 o2 l
  停用/激活所有WordPress插件
5 f  P3 @6 |4 S4 Q8 G
/ [! Z5 k" A" T; w' o7 ^  c  激活某個插件後發現無法登錄WordPress管理面板了,試試下面的查詢命令吧,它會立即禁用所有插件,讓你重新登錄。
2 t. E7 ~1 V7 _6 B& `  I
3 I, |. B9 ?3 d0 l以下為引用的內容:
/ r( N& J6 A4 x, fUPDATE wp_options  SET option_value = 'a:0:{}' WHERE option_name  = 'active_plugins'; 0 B: h1 m+ ?1 A" d( [2 x. F5 f2 `
9 q4 I% }! k, t
. s4 J1 b$ Z- J) v4 D
  更改WordPress網站的目標URL
! g5 K0 _1 S; E  c
) m" r5 O. |$ O  把WordPressBlog(模板文件、上傳內容&數據庫)從一台服務器移到另一台服務器後,接下來你需要告訴WordPress你的新Blog地址。' `0 v/ |/ n  l5 L" O9 D
4 ]- X! j8 z1 q: ^' H& e4 _
  使用以下命令時,注意將http://www.old-site.com換成你的原URL,http://www.new-site.com換成新URL地址。2 t, n; o3 l- B8 i: l" F/ u
* g) D0 I, `2 B3 G
  首先:7 i! U6 ?3 g# b/ g/ \) q

) [8 U6 S8 t, ]1 Y5 o( Z以下為引用的內容:
( f; Z! q+ Q5 F( h0 R! L2 D% Z5 mUPDATE wp_options  
& V- |/ h" o0 ]  a6 FSET option_value = replace(option_value, 'http://www.old-site.com', 'http://www.new-site.com')
0 s# F* U# ^% W; SWHERE option_name  = 'home' OR option_name = 'siteurl'; : G7 m4 V6 T1 a5 s, z2 z& D
3 u" h; Q. n  q: o( d

3 m$ n, X$ f' r6 V% }) e  然後利用下面的命令更改wp_posts裡的URL:( M* P) G9 I1 B3 p4 P8 n
2 f  b; K) s/ w! E7 L* @8 b' C
以下為引用的內容:
( B% P! M5 j- K& R+ BUPDATE wp_posts  SET guid = replace(guid, 'http://www.old-site.com','http://www.new-site.com);
& X) k! R7 {- a+ R* c- {- W  A2 k( y+ K5 V
! x9 W) x4 `5 M
  最後,搜索文章內容以確保新URL鏈接與原鏈接沒有弄混:, Z: [! x9 M( Z" y& C9 S

, T* u2 X; t/ [1 j8 N$ ]以下為引用的內容:  f0 v" J+ x* k) ^3 j& G4 `/ @
UPDATE wp_posts  
' O# U  H; _0 Y% }+ r/ \! V: h5 LSET post_content = replace(post_content, ' http://www.ancien-site.com ', ' http://www.nouveau-site.com '); / [( Y" L! `' U+ v

2 b9 |* O" d+ R  N
6 n2 s: L7 ]3 c: Z- ^8 m  更改默認用戶名Admin
1 V. i6 e; e: X- l$ c! ~8 z4 y5 {, O3 ^+ ?
  把其中的YourNewUsername替換成新用戶名。
4 q2 F* _; P  G! Z$ D( ?1 b2 _+ g/ ]( H) o  \
以下為引用的內容:0 O8 H. D8 {' h5 w; v4 a
UPDATE wp_users  SET user_login = 'YourNewUsername' WHERE user_login  = 'Admin';
3 o" T2 m$ `* C! Z3 W# B3 m' s
# I9 B/ F& i9 Z1 b5 W& w5 P  y. P5 }3 \7 [% M% d/ j$ o. m# T) c
  手動重置WordPress密碼
+ G) O- v$ ?( L- \( }  t
: H% t5 h( Y% t2 }, @8 ?  如果你是你的WordPress網站上的唯一作者,並且你沒有修改默認用戶名, 這時你可以用下面的SQL查詢來重置密碼(把其中的PASSWORD換成新密碼):; I4 h) `8 O& A0 a5 C6 J% ^! b+ l
2 J4 o1 z& j, h/ P2 e& B
以下為引用的內容:; E7 f7 M+ H& U2 \
UPDATE `wordpress`.`wp_users`  SET `user_pass` = MD5('PASSWORD') ) ]9 t0 T& @9 Q) j  f$ G
WHERE `wp_users`.`user_login`  =`admin` LIMIT 1;
( u  q! X" |2 R6 P6 Y% w4 z. f
/ }5 j, }: k( {* z- F% g3 ?9 [% Y2 X+ k% b3 E, D" Y* i; V- G4 u4 E9 o. _# Z
  搜索並替換文章內容
# n" I9 ]& V9 F) \& g; E4 k5 p" z7 l
  OriginalText換成被替換內容,ReplacedText換成目標內容:" H( F7 o# G- c; Y# _2 w4 f8 D
, |4 y$ m/ F5 i- t' @
以下為引用的內容:! v* Q, Y2 v8 E% y+ }
1 j2 ^  ^$ R7 v
UPDATE wp_posts SET `post_content`
: I7 C3 u9 p# m6 E. }7 U$ J= REPLACE (`post_content`,
) s) G* X* i0 U: i5 R'OriginalText','ReplacedText');
7 ^4 a% R# y9 {3 L; Y" S" D3 P0 f/ D% x/ B9 H' }

  Z6 c, E! D& ?- I+ E; @7 d
" S9 \7 G6 C  ^* w& B8 l  更改圖片URL$ j" w0 v; s8 P" u" c! x' V  i

) G7 T, i7 l- D3 z  Q! g  下面的SQL命令可以幫你修改圖片路徑:/ ~  d8 l% y* E$ \
( E  t- V" V  n1 G. ^0 m4 ]
以下為引用的內容:
! A$ ^8 l) R1 ^
# i) H/ G2 w, h  U4 T$ }0 lUPDATE wp_postsSET post_content  = REPLACE (post_content, 'src=」http://www.myoldurl.com',  2 _' x# i) N' I9 v* U: r
'src=」http://www.mynewurl.com');
發表於 2011-3-31 17:29:32 | 顯示全部樓層
這個要學習下,也許能用上
回復 给力 爆菊

使用道具 舉報

發表於 2011-4-1 14:42:35 | 顯示全部樓層
到現在也沒完全駕馭wordpress sql數據庫,慚愧
回復 给力 爆菊

使用道具 舉報

發表於 2011-4-1 15:28:39 | 顯示全部樓層
俺從來沒有學過 直接使用呵呵
回復 给力 爆菊

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 免费注册

本版積分規則

點基

GMT+8, 2025-12-10 05:11

By DZ X3.5

小黑屋

快速回復 返回頂部 返回列表