过期域名预定抢注

 找回密碼
 免费注册

20個wordpress sql數據庫查詢語句

[複製鏈接]
發表於 2011-3-31 14:20:47 | 顯示全部樓層 |閱讀模式
  WordPress將其所有信息片段(包括文章、頁面、評論、Blog鏈接、插件設置等)存儲在MySQL數據庫中。 雖然WordPress用戶可以通過網站後台編輯控制以上信息片段。 在一定程度上。
, o3 @# C9 k# V% t1 F
7 F- T, ]% U* w8 N; |2 \  不過假設你的WordPress網站上有成百上千篇文章,而你需要進行全站範圍的改動, 這時從後台逐條編輯就有點費時費力了,並且犯錯的幾率也會提高。 最好的方法是進入WordPress的MySQL數據庫執行必要的查詢(改動)。 通過MySQL可以迅速地完成以上任務,為你節省更多時間。
0 [# M  m  N3 t4 Z& \* Q$ d/ l" N  L( l
  下面要介紹的就是一些省時省力的WordPress SQL查詢方法。
( h. j9 N6 |. @$ Z3 O( ]/ {! h$ B& I7 j- }- D+ K7 H( o) s
  事先備份
) @5 D' O' x' t5 R5 ^8 C' Z. Q/ M' w; r
  WordPress數據庫裡存儲了你精心發表的每一篇文章,來自你的讀者的所有評論,以及你對自己網站進行的所有個性化設置。 因此,無論你對自己有多自信,都請記住一定要事先備份WordPress數據庫。 你可以通過備份插件進行備份。1 F+ k% K9 f" b2 M
. _: |1 J/ @- K* }0 g+ J4 I# J: y
  為所有文章和頁面添加自定義字段  M3 A# d$ ]0 G, I

( r( y# W+ R0 S  這段代碼可以為WordPress數據庫內所有文章和頁面添加一個自定義字段。 你需要做的就是把代碼中的『UniversalCutomField『替換成你需要的文字,然後把『MyValue『改成需要的值。
7 Y8 z5 _6 R0 ~. U4 w1 f$ k& X3 Y* S  Q3 y$ [
以下為引用的內容:
9 ]) O& n2 }) a# l! m1 J
7 k! f" ?2 A, c  W) qINSERT INTO wp_postmeta  (post_id, meta_key, meta_value)- w; a2 J! b  m- ?6 L) H! R
SELECT ID AS post_id,  'UniversalCustomField'. m- i: k, Y8 v  _5 O
AS meta_key 'MyValue AS  meta_value FROM wp_postsWHERE ID NOT IN (SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField');  
; v7 g5 K; i# O
# M( e. O# s! a3 q0 a2 N  u. J% s2 a" n6 g
  如果只需要為文章添加自定義字段,可以使用下面這段代碼:
7 Q+ D* R) B- Z2 Y7 k. E
. a, x# w$ t+ k! w; ~2 ~以下為引用的內容:
4 T$ ^9 T0 f% h/ W  H5 H. Y( X+ N# Q# K" U3 v
INSERT INTO wp_postmeta  (post_id, meta_key, meta_value)! [3 ?* }; N( v, y% k, U1 `% g% x) |
SELECT ID AS post_id,  'UniversalCustomField'/ I5 E0 ?/ n& w$ }
AS meta_key 'MyValue AS  meta_value! d# y+ }  z2 H$ e
FROM  wp_posts WHERE ID NOT IN
5 C. h$ }$ J7 n8 t(SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')`` AND post_type = 'post';  
7 S( V9 n; N4 X7 ?- C+ s
% b, q0 e0 @; n; X+ R* s5 d& M# k4 V) W  j
  如果只需要為頁面添加自定義字段,可以使用下面這段代碼:6 d: `7 m% A$ @7 i- n5 f
7 m1 S$ Q1 J( X7 ^$ C
以下為引用的內容:
- l; B4 G: z& j: y2 u
5 L% Q" m0 Z, f5 @8 ]1 L' j% p; yINSERT INTO wp_postmeta  (post_id, meta_key, meta_value)" D7 @8 |; N2 e! K3 M; D6 a6 l7 ]
SELECT ID AS post_id,  'UniversalCustomField'
* v" Y" y1 N8 Z7 V8 l4 RAS meta_key 'MyValue AS  meta_value
2 \2 Z0 k, f' j! ]4 T+ nFROM  wp_posts WHERE ID NOT IN
3 y' k9 a: ~. g: c2 }0 t(SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')AND `post_type` = 'page';
$ a' a$ L# h  A) m4 ]4 K" A! u/ `& _, t8 D4 N
: a7 s# t9 ]5 q8 ^* q# ]

, b  f) |2 {$ ?% g  刪除文章meta數據( G  g' h4 T* M3 A0 z! }
$ B9 d) F5 L, Y2 Y* R, q
  當你安裝或刪除插件時,系統通過文章meta標籤存儲數據。 插件被刪除後,數據依然會存留在post_meta表中,當然這時你已經不再需要這些數據,完全可以刪除之。 記住在運行查詢前把代碼裡的『YourMetaKey『替換成你需要的相應值。3 S; ?( ]. `0 }: r& i. l

9 d8 ]; ^; o& n$ |% l5 P以下為引用的內容:
* `0 D+ _2 ^: j4 W. Q5 rDELETE FROM  wp_postmeta WHERE meta_key = 'YourMetaKey';
* P) G' o- \! ~! E$ V  c! @$ j: ^6 `1 c) u

6 ]' x5 }4 S$ G( ?" Y  查找無用標籤! u" z4 P2 o+ @) I! M- Z
8 p) M8 a- W9 |# Z$ u6 F- \
  如果你在WordPress數據庫裡執行查詢刪除舊文章,和之前刪除插件時的情況一樣,文章所屬標籤會留在數據庫裡,並且還會出現在標籤列表/標籤雲裡。 下面的查詢可以幫你找出無用的標籤。  F5 k. {1 c+ m: f/ b7 x$ ~
+ I1 D- @) l4 {* h+ o- \; ~# o
以下為引用的內容:
2 {0 o# R1 w" x4 a, w* ~7 O% |: b- I; C* G  P
SELECT * From wp_terms wtINNER JOIN  wp_term_taxonomy wtt ON wt.term_id=wtt.term_id
/ F( N! ?' P  s& NWHERE wtt.taxonomy='post_tag'  AND wtt.count=0;
+ p* H& \2 s" X+ Q! O. i+ M& J5 Y, ?

9 J0 {, K' Q: P* e, T+ J4 A  d  批量刪除垃圾評論+ V7 b# b$ E6 f9 u8 {2 t! ~
& z2 I+ _2 m0 J5 j+ j) g: |
  執行以下SQL命令:) i" ~7 }8 h5 y" ~
3 N, Y/ F1 y- E7 ]: R; X
以下為引用的內容:8 L: Y* ~* ]5 x! |
DELETE FROM  wp_comments WHERE wp_comments.comment_approved = 'spam';
2 M$ m1 u% p% f( {* _9 r
1 i! Q) n' n  t3 l! q
- [0 F: f9 n( a3 E0 W4 j. \( j% k# V6 s0 o2 J0 P8 u; h2 `' L9 q
  批量刪除所有未審核評論* w) z4 g: t. Y/ Y4 H3 {' M
8 `+ A+ b0 P$ X2 e5 @; M$ }: R
  這個SQL查詢會刪除你的網站上所有未審核評論,不影響已審核評論。
$ G" T, ?4 A7 p6 B6 b  j
5 n9 O5 u% I! |" E" C以下為引用的內容:
: V6 b  d1 c9 QDELETE FROM  wp_comments WHERE comment_approved = 0
" d5 Z$ G7 E* m5 V) n' i5 r  `1 [5 M3 k, S
) f" R6 q+ }( _8 i4 E
  禁止評論較早文章& O  q$ ?0 P5 ]5 M3 ~0 R+ t
5 W5 f5 f2 W# E( ~
  指定comment_status的值為open、closed或registered_only。 此外還需要設置日期(修改代碼中的2010-01-01):
2 Q4 O$ k3 \5 C4 K# K/ h$ T9 H* G! O) q
以下為引用的內容:" S4 q% `4 C: V0 E0 p" w
UPDATE wp_posts  SET comment_status = 'closed' WHERE post_date  < '2010-01-01' AND post_status = 'publish';  9 M; x) X- L) p6 ~5 F" o( y: |, Y: g4 ~& a

5 z; |3 I1 h$ p
3 f, E; w3 {2 H/ h: X  停用/激活trackback與pingback
0 X' u6 d. k( l# ]# f, f9 {. m
' a' }" J7 }( t0 H        指定comment_status的值為open、closed或registered_only。1 J9 c. u* Z+ l2 k% T) @+ T6 `
0 M9 g# W8 e# J2 v* l
  向所有用戶激活pingbacks/trackbacks:
: `; s9 ^& U$ i/ y
' k3 _! Q  m. h5 y, R1 k以下為引用的內容:
2 U  _$ A- E2 U! XUPDATE wp_posts SET ping_status = 'open'; . H3 V5 |( d# B; e
  g9 O6 R& a/ n! t
  L7 j" ]7 b6 J/ i- L
  向所有用戶禁用pingbacks/trackbacks:
$ U  }' P* ?$ ?& C. R: [# A9 L$ Y/ N7 S7 F- b2 n' V; e! ]
以下為引用的內容:
* r( h7 m6 O) s  V" i$ R0 dUPDATE wp_posts SET ping_status = 'closed';  ( d" l; H1 X+ j+ u! Z
4 E8 Y# A: ^. p) D6 K
+ e) }1 A/ F8 N. {1 I
  激活/停用某一日期前的Pingbacks & Trackbacks" n& W) v4 ^) X7 s
8 e* H, {" E$ x3 O% M( D0 N/ l% `
  指定ping_status的值為open、closed或registered_only。 此外還需要設置日期(修改代碼中的2010-01-01):. }8 w- j4 _& q9 X: B1 u0 ]

; b2 v& ^3 o& c% r( p以下為引用的內容:; E* k2 ]- U9 b. w* k
UPDATE wp_posts  SET ping_status = 'closed' WHERE post_date  < '2010-01-01' AND post_status = 'publish';   Z8 T3 j# u' J: Z# p; S7 \

- E. ~  F( d  r: s1 z4 |6 r
+ J" u; \" o  B  _) K( o1 _) G  刪除特定URL的評論
% [) e* {6 T6 \* d
' K% y* v. n5 u9 G+ r! f/ o+ `! q  當你發現很多垃圾評論都帶有相同的URL鏈接,可以利用下面的查詢一次性刪除這些評論。%表示含有「%」符號內字符串的所有URL都將被刪除。2 [) ]. }, \* |' c) b4 x$ V
& E. V. P' _! F, O9 f% w2 i! V8 f
以下為引用的內容:
/ U; u  `* P: A# n( D' c: mDELETE from  wp_comments WHERE comment_author_url LIKE "%nastyspamurl%"  ; # V5 |; }& Y) B. {% H! L
3 Y; `# w* D( B' f% R
' {- J) F2 ?* B  Q- J1 t
  識別並刪除「X」天前的文章
( L% m% m6 k& z- H  o/ T- s9 Z. W, x0 ]6 S
  查找「X」天前的所有文章(注意把X替換成相應數值):6 O  c7 _, M( b/ n! V

3 Z+ k5 p( Z$ |' c  ?以下為引用的內容:
" T. t7 d4 M9 d0 l$ J3 x2 P
/ Z- a; n- W! b1 K$ C' A) {SELECT * FROM `wp_posts`
8 p' d, B3 w, m/ @' O7 }WHERE `post_type`  = 'post'AND DATEDIFF(NOW(),  `post_date`) > X  
" x( M' K  A. _3 M* m- R7 M/ T, S$ C9 J6 u
# p1 t2 [2 X/ W6 Q/ p- A4 q& _
  刪除「X」天前的所有文章:
" \2 M+ R( L( ^
* T- J8 v( m- Y8 \7 E9 H" J1 U以下為引用的內容:
/ i" ?" k: o* e& W, B9 @: n8 P, o9 y' S8 r
DELETE FROM `wp_posts`
! j5 K7 T  J0 vWHERE `post_type`  = 'post'AND DATEDIFF(NOW(),  `post_date`) > X: O/ D0 H2 w# b7 r% |* z7 X- Y

) [! H. `3 Y3 c, B  T4 |  r% K! Z9 a
8 a5 _1 B7 U7 S- P* m7 ?* k8 Z9 M
. ]. P( G3 v' s1 Q  刪除不需要的短代碼6 `- C- b1 m5 N. k3 n0 {, D

9 S$ b  a% A' {' \  當你決定不再使用短代碼時,它們不會自動消失。你可以用一個簡單的SQL查詢命令刪除所有不需要的短代碼。 把「tweet」替換成相應短代碼名稱:
2 ]; ^& _" j0 B8 T8 ~0 [# ?+ G, h  x' _, u
以下為引用的內容:
. d" t9 X+ n) S2 G7 o8 V  U) eUPDATE wp_post  SET post_content = replace(post_content, '[tweet]', '' )  ; : @" ^1 M- ~& F5 b0 Q6 j

+ i# G. S' k0 D0 T3 z1 W
6 P" Z6 d  L4 e$ E: H) t  將文章轉為頁面3 J0 G. k% s6 x1 ]
) F% y2 v4 _2 ~* A! K
  依然只要通過PHPMyAdmin運行一個SQL查詢就可以搞定:
) _4 S: F9 E5 @9 S5 n. L. T- \7 E  B
7 ]$ x0 l* O5 e以下為引用的內容:% c" u$ o7 D# |( x0 l; [* t
UPDATE wp_posts  SET post_type = 'page' WHERE post_type =  'post' / g; }" J1 T  ^+ q

9 X- r1 B( [" O6 D" D5 ~3 y, P, C" A: C# V% @  ~# w  a' L$ x
  將頁面轉換成文章:
( n# Q/ c7 }9 u* W$ s7 a& C" V9 s# K2 h9 e) q" P5 l$ {5 Z( q
以下為引用的內容:+ d. Q+ \7 n: o! T
UPDATE wp_posts  SET post_type = 'post' WHERE post_type =  'page' 8 j& N) N' t* G) I
0 E: Z* |2 r/ p, r7 I, Z7 b! h

9 o2 H$ d) F( |5 T  更改所有文章上的作者屬性3 n9 F' s9 E- n7 x

4 Y3 B1 Y5 o& E/ A7 U3 A  首先通過下面的SQL命令檢索作者的ID:
. q/ I3 C" |5 B" y/ Y/ z; w) G$ i9 ^2 j2 P
以下為引用的內容:
' X, E( B7 t5 i, `* kSELECT ID,  display_name FROM wp_users;
" I; g3 j5 y& Y0 K( H% ^* @3 d/ S2 K, K2 v2 e2 r. v
) Q8 ~' G1 ?! I' h: L3 z; d) |
  成功獲取該作者的新舊ID後,插入以下命令,記住用新作者ID替換NEW_AUTHOR_ID,舊作者ID替換OLD_AUTHOR_ID。3 T) B6 [' t% B) `
, A( j! x. P: b
以下為引用的內容:
! K! T: s1 Y& D, h$ J: S) C7 ^3 zUPDATE wp_posts  SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID; 3 g" C1 J. ~( N

! r& h  ^, k- T3 m7 @% M7 b8 [2 N% e
     批量刪除文章修訂歷史
+ v3 z; }: R, f: i$ \0 f6 T1 J* y; b1 F) t8 Y# T3 Z
  文章修訂歷史保存可以很實用,也可以很讓人煩惱。 你可以手動刪除修訂歷史,也可以利用SQL查詢給自己節省時間。
3 U/ c9 l8 o2 ~4 T" w- I( ?# l& k* x. D( K
以下為引用的內容:
1 C$ j4 W8 m3 K8 l! CDELETE FROM  wp_posts WHERE post_type = "revision";
- a7 ^) P3 g' E# Q- p/ @  _, p* R8 l  y' }+ O) M* g( ]; Y( X% Z
/ h- Y) p9 X& X$ G  h" e6 r6 B! ]8 p
  停用/激活所有WordPress插件8 }5 K- W$ n8 ~7 C
" ~; B" v  _9 \: ]2 F3 E4 `: x* M
  激活某個插件後發現無法登錄WordPress管理面板了,試試下面的查詢命令吧,它會立即禁用所有插件,讓你重新登錄。9 F( ^! k# t" F
. t3 c& k/ V( e4 v4 {) u
以下為引用的內容:" f# G, h0 ~& }& I* J1 h" b
UPDATE wp_options  SET option_value = 'a:0:{}' WHERE option_name  = 'active_plugins';
9 N6 G: J% N! d( @: z3 E; L) k5 }7 C( c, x; q& m. T

9 Y9 o. m' c. _7 H2 s2 X  更改WordPress網站的目標URL
; m& ~8 e2 I! b' C4 G
% O7 L  C8 P9 y  把WordPressBlog(模板文件、上傳內容&數據庫)從一台服務器移到另一台服務器後,接下來你需要告訴WordPress你的新Blog地址。
" o" c; v4 j" S5 r3 V
2 }5 G* l% A+ L5 G4 u$ R  使用以下命令時,注意將http://www.old-site.com換成你的原URL,http://www.new-site.com換成新URL地址。
+ @) [  k& W2 \* H& I
/ R# X9 d3 s2 w5 `3 Q  首先:
* d; D/ q. ^3 w, F1 `5 I5 R: f( ]* v! _+ R3 D4 k
以下為引用的內容:
$ j- `" `7 i. t( I- ]+ L& tUPDATE wp_options  
) l1 j$ [2 }. a* zSET option_value = replace(option_value, 'http://www.old-site.com', 'http://www.new-site.com')
  W/ H6 q) A* C( c7 ]' v4 qWHERE option_name  = 'home' OR option_name = 'siteurl'; . x- ]7 ~; u/ z$ G) _4 O- ^
& h. N& x2 L( H0 R

8 c2 D2 g6 C$ |7 |  然後利用下面的命令更改wp_posts裡的URL:. H; J# W1 d/ y& {: m
/ h8 N% q6 b& d! Y  I7 R: s
以下為引用的內容:* a' ~* N4 I9 C$ [( O1 P, N# t
UPDATE wp_posts  SET guid = replace(guid, 'http://www.old-site.com','http://www.new-site.com);
6 \# `9 N& S) A5 K# P% ^1 V' o, w7 P% P
& W2 f# I8 z' i4 j4 V
8 P/ ^9 {" R- t  最後,搜索文章內容以確保新URL鏈接與原鏈接沒有弄混:( ~- Q/ Z0 b- g, r- b- ?$ x

  `  |  u1 E! K8 M: j以下為引用的內容:
7 p* x- s0 E( S0 }* AUPDATE wp_posts  - U& Q4 h4 J/ [! l' ~/ s, T
SET post_content = replace(post_content, ' http://www.ancien-site.com ', ' http://www.nouveau-site.com ');
7 ^1 K) `3 a8 ]- K4 g% _2 H
1 t0 {# z9 a; j0 S' A% Q4 c2 y$ D" R
  更改默認用戶名Admin
% ?) R+ ^3 ~- ~6 x$ Y( X# X% M9 G
  把其中的YourNewUsername替換成新用戶名。
" j3 V  j; s1 ~# F5 D0 f4 t- k
9 z, d1 b' }; u! k4 B) Z以下為引用的內容:
8 Q" ~, u  N. F/ b1 XUPDATE wp_users  SET user_login = 'YourNewUsername' WHERE user_login  = 'Admin';   C" U8 c# Z  G

: J5 Y+ v8 K0 r- V4 ~+ M, Q* `+ m
  手動重置WordPress密碼: d& }( x, o; \/ v6 Y7 X/ S. Q8 J

* \! B/ d: ]- `  n: S4 a  如果你是你的WordPress網站上的唯一作者,並且你沒有修改默認用戶名, 這時你可以用下面的SQL查詢來重置密碼(把其中的PASSWORD換成新密碼):
  I) ?9 V) E, X& u, D
  {% `1 N1 y/ S/ {- J以下為引用的內容:
$ F2 p# F9 a% NUPDATE `wordpress`.`wp_users`  SET `user_pass` = MD5('PASSWORD')
6 V0 d, V# F# r; P% {WHERE `wp_users`.`user_login`  =`admin` LIMIT 1;
# x/ s) N' r; q) A: f% p# j' m) |( R- j% U
( H% T  U& A2 q7 J5 t" O) v
  搜索並替換文章內容
0 ]8 l1 Z4 S5 E& J. h# D! n( L( O. }
  OriginalText換成被替換內容,ReplacedText換成目標內容:
7 N9 ?+ o' Y4 e3 c! M3 s2 x* E% s  i; S- T  o0 g% I9 o; C
以下為引用的內容:1 t- H1 j* t# o* d5 Z# x

, H+ r5 d6 `( J" C8 OUPDATE wp_posts SET `post_content`
  l$ I1 C; I" w0 z( _7 c, W+ j= REPLACE (`post_content`,
" T8 Y7 @. S, a. N# A8 S'OriginalText','ReplacedText');* P* g% z; W0 r3 u' f
, B3 M" G3 x- n- b
# y. l  T- o% }. _  [/ D
! `7 L0 x. G' f0 Q7 }! P
  更改圖片URL
) n1 g+ }1 o4 M: e) ]3 X" d  _. Z7 ]
  下面的SQL命令可以幫你修改圖片路徑:
/ G' J/ u$ m6 \7 c' I% ^9 ?' M! [! j
以下為引用的內容:
5 ~4 E; h5 J1 V7 `2 J% @: }7 f# T. _$ S' P; ]4 H1 v  M+ }) H; M# u
UPDATE wp_postsSET post_content  = REPLACE (post_content, 'src=」http://www.myoldurl.com',  
+ k/ t: q* H  l'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-7-19 06:40

By DZ X3.5

小黑屋

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