过期域名预定抢注

 找回密碼
 免费注册

20個wordpress sql數據庫查詢語句

[複製鏈接]
發表於 2011-3-31 14:20:47 | 顯示全部樓層 |閱讀模式
  WordPress將其所有信息片段(包括文章、頁面、評論、Blog鏈接、插件設置等)存儲在MySQL數據庫中。 雖然WordPress用戶可以通過網站後台編輯控制以上信息片段。 在一定程度上。( t/ A( N" ~" Y/ B$ x" t

! s. ]) r9 O3 R- w9 W. x  不過假設你的WordPress網站上有成百上千篇文章,而你需要進行全站範圍的改動, 這時從後台逐條編輯就有點費時費力了,並且犯錯的幾率也會提高。 最好的方法是進入WordPress的MySQL數據庫執行必要的查詢(改動)。 通過MySQL可以迅速地完成以上任務,為你節省更多時間。$ I1 e5 w8 `7 D& _  ~

* j0 F/ R% X0 h) Z9 C4 h# z  下面要介紹的就是一些省時省力的WordPress SQL查詢方法。
8 U! [3 a5 V4 V; \: S
8 e( w6 d6 W$ t  事先備份6 O, x  @2 y. E/ z/ e

9 i# W# i6 H8 n6 u7 A% u  WordPress數據庫裡存儲了你精心發表的每一篇文章,來自你的讀者的所有評論,以及你對自己網站進行的所有個性化設置。 因此,無論你對自己有多自信,都請記住一定要事先備份WordPress數據庫。 你可以通過備份插件進行備份。
2 a8 X5 A0 s( e* q: O& O* `  ?% v0 r; i  e; Q& m+ @+ S
  為所有文章和頁面添加自定義字段
( Q+ C0 U! t8 M3 S* O# x
5 v& T# J, Z$ B; V( S, b8 Q  這段代碼可以為WordPress數據庫內所有文章和頁面添加一個自定義字段。 你需要做的就是把代碼中的『UniversalCutomField『替換成你需要的文字,然後把『MyValue『改成需要的值。4 D( L' |7 O9 b6 Q' l8 P# `% K" T7 ?

7 Z# G+ Z. c3 L7 T6 w以下為引用的內容:: c( Q3 O4 x0 R" R& |  Z
1 f, }8 V5 z/ y0 ]/ \
INSERT INTO wp_postmeta  (post_id, meta_key, meta_value)/ L% V$ E: r# l$ e* J" |, J9 Z
SELECT ID AS post_id,  'UniversalCustomField'
, G1 }+ h) I7 e$ c" @. gAS meta_key 'MyValue AS  meta_value FROM wp_postsWHERE ID NOT IN (SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField');  * F- G: y; M; x4 B9 e; i/ V
/ _- ?0 A  O- D# g/ L. ?: _

5 n5 e6 c( l6 ^9 [- ]  如果只需要為文章添加自定義字段,可以使用下面這段代碼:9 L; `6 U. S* I1 I& y9 X! X1 C
+ ?9 p( h# W5 c: z/ `) a
以下為引用的內容:
7 l  u; {5 [% x/ w9 M$ T" x
5 A8 n' f9 b" Q) I6 C2 EINSERT INTO wp_postmeta  (post_id, meta_key, meta_value)
( ?% o, q) R& c6 z4 k( B  U. JSELECT ID AS post_id,  'UniversalCustomField'0 t+ m! B& B' b/ r9 Y% H
AS meta_key 'MyValue AS  meta_value
$ f8 n& \- O1 m: t2 f" jFROM  wp_posts WHERE ID NOT IN
# A: V2 Q, K/ F; V(SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')`` AND post_type = 'post';  
% j# E. w, s. ~) Z$ o8 ]+ ?! L8 D5 a  P( _+ h% C* z, X

- q/ \( ~; z2 j  如果只需要為頁面添加自定義字段,可以使用下面這段代碼:
6 I2 O. M9 s+ @0 \# U" `- m9 ]3 I
8 E: U/ |- B* o! H7 y" X4 _4 I, S以下為引用的內容:
7 }7 L3 O7 Z( Z4 s- f5 ?% p" S& v4 C+ }4 {
INSERT INTO wp_postmeta  (post_id, meta_key, meta_value)& m1 y5 w; S8 r+ g! ~5 Y- ^
SELECT ID AS post_id,  'UniversalCustomField'+ T1 e8 Q2 q" D( I4 M! Q
AS meta_key 'MyValue AS  meta_value
" k# s8 q3 `. mFROM  wp_posts WHERE ID NOT IN
' T4 _, k4 A  n- o# e: e% M' D3 Y(SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')AND `post_type` = 'page';
8 |( L" p- G1 _4 l6 C
! ~+ ^: ], T/ n; P0 ~4 b+ _& R9 x$ W

1 e0 Q1 H. l4 x3 k) B  刪除文章meta數據
& M6 Y- s2 x8 ~6 Q  O  ^4 A
2 o  g# {# F2 y  當你安裝或刪除插件時,系統通過文章meta標籤存儲數據。 插件被刪除後,數據依然會存留在post_meta表中,當然這時你已經不再需要這些數據,完全可以刪除之。 記住在運行查詢前把代碼裡的『YourMetaKey『替換成你需要的相應值。
8 o" u# r! M8 B# C  c9 ?9 b9 U6 `  x# P0 G5 c8 w
以下為引用的內容:! t/ E8 a; Q5 [
DELETE FROM  wp_postmeta WHERE meta_key = 'YourMetaKey'; / q. x/ B5 z& G) x8 Q$ p
4 K2 G8 S5 g1 ]4 x. o

" j6 Q" R8 I- `/ o; u" S  查找無用標籤
1 V4 h: {/ Z3 V$ F: [  q
( p0 x0 o" {! }2 {& f( }  如果你在WordPress數據庫裡執行查詢刪除舊文章,和之前刪除插件時的情況一樣,文章所屬標籤會留在數據庫裡,並且還會出現在標籤列表/標籤雲裡。 下面的查詢可以幫你找出無用的標籤。, u- c: ?. z0 e5 c- Z, N, G
4 G1 U( k" ]' Y  }( d, E0 a
以下為引用的內容:
* X$ |, h. ^& W0 c$ ^
$ e0 M6 I* i: lSELECT * From wp_terms wtINNER JOIN  wp_term_taxonomy wtt ON wt.term_id=wtt.term_id : O  [/ v9 }6 p' ]; F
WHERE wtt.taxonomy='post_tag'  AND wtt.count=0;
' B& ?$ G+ b5 G  P! o7 I5 @; }7 Z0 k/ m. y

4 g' L' ?& ~, U& t! N+ j9 B0 _  批量刪除垃圾評論
" l5 m" }3 B/ n: V3 }5 B
: f4 e- a% V/ s0 Z  執行以下SQL命令:( q5 v( T, F# |% L3 Y6 j7 o
9 x8 ], a1 H9 l: `: Y  P  x
以下為引用的內容:
% T( `; ?/ Y6 w3 S3 gDELETE FROM  wp_comments WHERE wp_comments.comment_approved = 'spam';
( ?7 K" y) H3 R
( C( t( n4 o; ?; I2 \4 \; M) s7 B% _  j* Q2 e
+ P: z# m9 s2 U( ?6 g; G7 g
  批量刪除所有未審核評論3 V5 E. k5 K0 ]; q9 m; T; V
& `* o6 v" f9 X0 O: D
  這個SQL查詢會刪除你的網站上所有未審核評論,不影響已審核評論。
0 e( Q$ L' |8 ^: }% Z+ u4 z
$ x( x4 `8 s+ ^6 f以下為引用的內容:
' e$ _4 M; W, _DELETE FROM  wp_comments WHERE comment_approved = 0 " r8 u! T, {# V$ w$ D3 d" j- e
, y$ J! Q+ l8 ~5 o; H3 F( ]

7 O4 N4 E0 k# n3 }, c  禁止評論較早文章/ t1 A1 W5 E) \& P3 o1 F

6 C" K* k2 C6 v4 T. z9 ~; W  指定comment_status的值為open、closed或registered_only。 此外還需要設置日期(修改代碼中的2010-01-01):2 G& W, v+ y  H0 g

$ z) s" w* J& Z1 y0 l! R以下為引用的內容:! i+ e& x+ y4 _7 R5 |: ?6 m
UPDATE wp_posts  SET comment_status = 'closed' WHERE post_date  < '2010-01-01' AND post_status = 'publish';  
% h* G- M0 x: ^7 q7 H  o
: z5 H% y1 O3 M6 k4 K" U
, \7 M' G3 p9 `& r6 n! c# Y  停用/激活trackback與pingback$ ~, \) x* X# w: F

3 [9 f5 o) t& m. B! k        指定comment_status的值為open、closed或registered_only。) X' x  b* [3 W- d/ V9 c

0 _2 m1 t3 S9 D0 A  向所有用戶激活pingbacks/trackbacks:6 ?* \: p8 l, i7 b! e+ g. [7 _
+ s1 \5 F1 e- d% ^- D
以下為引用的內容:/ R0 G* i' d0 w. H' ?2 B/ R
UPDATE wp_posts SET ping_status = 'open';
2 n* |' S! U$ n) U) K0 \8 G% `, K3 c# f& a$ H

+ B% J1 r1 D2 U8 Z6 u. n5 H- J  向所有用戶禁用pingbacks/trackbacks:$ f/ M# a& I$ f* c- S" T' U5 m4 n
: d$ d# Y8 c/ I
以下為引用的內容:' U  w" @) q5 J0 g: ]
UPDATE wp_posts SET ping_status = 'closed';  
, u7 X8 Q; i: F0 _/ H- R
1 \, }) f# b4 i/ u: j' Y" g$ a) g& Z2 F) Q8 w
  激活/停用某一日期前的Pingbacks & Trackbacks
% Z4 `/ ~( _- ^3 f1 q$ n  I4 A1 I7 V0 {  u- R0 `
  指定ping_status的值為open、closed或registered_only。 此外還需要設置日期(修改代碼中的2010-01-01):
% [, O4 l2 X$ t% u8 J5 M9 }6 a* C2 e
以下為引用的內容:+ q  s$ {! ?1 N: g' N$ ~6 K9 `
UPDATE wp_posts  SET ping_status = 'closed' WHERE post_date  < '2010-01-01' AND post_status = 'publish';
9 H& x8 C, ^; K6 r- U0 G. k' [
6 H; e: M0 a( m! v  j7 d. H# A/ V/ Y/ G6 p
  刪除特定URL的評論; G# K& X! t' o0 ~+ t
* f. ]" {# S9 |4 a5 J
  當你發現很多垃圾評論都帶有相同的URL鏈接,可以利用下面的查詢一次性刪除這些評論。%表示含有「%」符號內字符串的所有URL都將被刪除。
. s/ l% c4 y8 [! {6 [3 g! l4 C8 D4 p/ K( J* z
以下為引用的內容:" W1 V3 V% w* p: G: y  }# @
DELETE from  wp_comments WHERE comment_author_url LIKE "%nastyspamurl%"  ;
, O3 f! L9 V6 g3 h# G. m( D# r! Q- r0 O5 f( {3 k
: b& u9 a; Y3 ~( t
  識別並刪除「X」天前的文章
5 n! b7 A* O0 w- g+ {/ m# Z; m! F. K" U/ p7 Y
  查找「X」天前的所有文章(注意把X替換成相應數值):& W2 D. _0 o: y. s" b, c! \4 A, Y
; ]! H7 Y# @- L
以下為引用的內容:) O) @/ n( o- r5 y, d% I5 L
1 Q5 U& D  t- Q# m& e0 Z: B
SELECT * FROM `wp_posts`
% J4 F% r" k% dWHERE `post_type`  = 'post'AND DATEDIFF(NOW(),  `post_date`) > X  ! [, O& Y- Q2 W8 n" ]

& a. h1 b% h% O& [# X! z  ]9 S
0 B% k% `" r8 }; e5 L% O  z- @: v  刪除「X」天前的所有文章:
4 i, [( Z" h( u" A2 V/ L* p6 I2 q  s# H' C' p
以下為引用的內容:& g. ?# C7 v  g( L& I+ p; j& s( o4 w$ x
0 q+ d: L& H4 y
DELETE FROM `wp_posts`
: j" f/ J" W% m" J: s1 M7 pWHERE `post_type`  = 'post'AND DATEDIFF(NOW(),  `post_date`) > X  C. p0 ~, }' d$ n! b, J; _
3 T4 {0 r) Z; U$ `
/ ]# X" W; c* X' P1 N$ i
+ p# v. @% g4 u& ?
  刪除不需要的短代碼1 h" z3 B) P$ ^7 R  L) r* f

8 U! j  G9 p3 n( X: d  當你決定不再使用短代碼時,它們不會自動消失。你可以用一個簡單的SQL查詢命令刪除所有不需要的短代碼。 把「tweet」替換成相應短代碼名稱:7 s" a7 F* u% ~9 _. N

8 U/ J+ |% w7 b+ I' y, L以下為引用的內容:
" G7 H5 L. j& F9 ]UPDATE wp_post  SET post_content = replace(post_content, '[tweet]', '' )  ;
8 _# k3 r% d) z4 j6 c! T: g0 E7 C6 M6 Q  U
" x6 M. u3 M5 n% [2 p" I3 S5 j
  將文章轉為頁面
2 E5 E' q2 m( u  ^5 F/ O3 b# B: C
9 k! o" z5 l4 Q. P  依然只要通過PHPMyAdmin運行一個SQL查詢就可以搞定:
3 C/ M; x1 l& c3 ~; j6 x( b0 W8 Q  e' x" p5 u8 S6 W( U& x- w/ C
以下為引用的內容:
, V& l, ^% F6 }# qUPDATE wp_posts  SET post_type = 'page' WHERE post_type =  'post' 1 E) q( x5 o7 e6 c" A' X7 [' c5 z

3 M- {7 d8 i4 O% i; m
: G, T2 X% C; |  將頁面轉換成文章:3 ~4 \. M! g# @! D1 |' o2 A0 ^
' {) M5 ^2 u  J) V$ i/ ^% x. Z
以下為引用的內容:
/ B4 j& d+ f2 x( i. _UPDATE wp_posts  SET post_type = 'post' WHERE post_type =  'page'
  ^$ v- N, X" ~
( e+ ^8 _$ H! _! J* f" m" J* m: d) M/ f$ `$ x2 ]. n! M3 v- _
  更改所有文章上的作者屬性
+ @7 r, @/ K) x& @3 I( Q, I% S. c1 \3 a8 R1 T& V
  首先通過下面的SQL命令檢索作者的ID:- }' P$ H6 x5 y6 ~9 o* o

: k" k5 ]' B6 P/ b. D以下為引用的內容:
5 o8 Y7 I/ r# r, H: @* \SELECT ID,  display_name FROM wp_users;
9 |1 N: A# A' F; \
0 _0 L  C1 D- I0 s0 J! S" q/ N# i, [# ^
  成功獲取該作者的新舊ID後,插入以下命令,記住用新作者ID替換NEW_AUTHOR_ID,舊作者ID替換OLD_AUTHOR_ID。1 R6 a' ], A- q8 q6 G  S, Z- m

+ E5 ?) v' b$ i5 n以下為引用的內容:/ ~# i1 j! J! i% l( a# v# h# n4 J( w
UPDATE wp_posts  SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID; 1 E& q* R* I: V! B% Y
$ s# [+ `- ?. L# |: q5 d9 B' o
$ l- U4 v' P( M0 Z* d5 v! R
     批量刪除文章修訂歷史2 A. z6 w2 B1 w" H2 o2 f- T$ P4 D
6 ~& X& M  p! Y/ ?& E. N0 q
  文章修訂歷史保存可以很實用,也可以很讓人煩惱。 你可以手動刪除修訂歷史,也可以利用SQL查詢給自己節省時間。0 v: ^% o. ~7 Z' a3 P- G1 K' t
/ U7 F! H' `# |0 T/ u  t$ a
以下為引用的內容:
, V. v9 c, s  W% jDELETE FROM  wp_posts WHERE post_type = "revision";
2 M+ D, b" I" _' L/ U; T4 M
5 X" |+ _0 G/ e. d1 w% [( o
$ w  R0 x( z# e- l  停用/激活所有WordPress插件
9 a( h+ u7 d$ @( Y: M
, J6 y7 k4 V! }! ?9 D  激活某個插件後發現無法登錄WordPress管理面板了,試試下面的查詢命令吧,它會立即禁用所有插件,讓你重新登錄。, m4 K5 {, r* m9 k" E
1 L! Z* o: v8 _8 P6 U5 Y5 }; [
以下為引用的內容:
) K1 h2 u9 |0 q8 [UPDATE wp_options  SET option_value = 'a:0:{}' WHERE option_name  = 'active_plugins';
' G  k+ C0 J; J, K
/ r# b) A7 e1 h0 s( H4 p, J' o) Z4 f8 ~! O( G
  更改WordPress網站的目標URL) ~$ N2 Z0 L3 Z5 g1 |* o- |4 j; E
# V3 v  R& S/ i2 u
  把WordPressBlog(模板文件、上傳內容&數據庫)從一台服務器移到另一台服務器後,接下來你需要告訴WordPress你的新Blog地址。
1 L; k% U/ Y; _+ Q8 I8 H$ `" P) a$ @2 g. X
  使用以下命令時,注意將http://www.old-site.com換成你的原URL,http://www.new-site.com換成新URL地址。, j+ w  W3 a& c1 C3 s

! J! Q  @1 c4 R4 f" C: k* I  首先:, y( V2 i% M1 L  M1 W+ `* G9 q& A  _

/ C. c, @( P' K9 f' H" N以下為引用的內容:9 D4 O3 l% }$ C4 m& A
UPDATE wp_options  
6 q6 e- B3 M6 I8 I( P4 {/ }( ySET option_value = replace(option_value, 'http://www.old-site.com', 'http://www.new-site.com') 1 A+ L% z/ u' H5 r4 ]4 v" [4 {
WHERE option_name  = 'home' OR option_name = 'siteurl'; # F, X7 t$ u/ g( F. s

5 d( L2 F1 b: n, w5 u$ R. x- X/ ]$ J. H8 X! p# a
  然後利用下面的命令更改wp_posts裡的URL:
! B" T# Z: X- {1 @5 z! m9 D3 f# P- ?
4 R) p" ^+ c$ i9 c9 e7 L0 G以下為引用的內容:' I1 a: Y8 b. T5 r) O
UPDATE wp_posts  SET guid = replace(guid, 'http://www.old-site.com','http://www.new-site.com);
: c+ e2 B& _9 `' J/ v/ P. ]% B* H# v6 a1 Q

* [$ D' v+ g# p8 y! J  最後,搜索文章內容以確保新URL鏈接與原鏈接沒有弄混:
+ S8 L4 H, n+ C/ r5 ~  d; [2 e
+ ^, Z9 c" Z* y4 w3 }8 T7 q/ g以下為引用的內容:
# \  e. h! S* h3 SUPDATE wp_posts  ( Y2 w5 R8 n/ i% l; Y/ M7 F+ j
SET post_content = replace(post_content, ' http://www.ancien-site.com ', ' http://www.nouveau-site.com ');
, U  w% ]1 g$ u- _& W& Q) w  w* T1 [/ k

: s" Y! g& l" L$ D  更改默認用戶名Admin7 a: s& [9 w$ `* s/ O& M' P# c3 r
( d0 D  ?2 N8 }& r3 V
  把其中的YourNewUsername替換成新用戶名。* r, h' X4 x' x3 c
5 q0 K& {4 p( \" A% Q6 g$ E
以下為引用的內容:
8 E2 u& f! j3 Q% h4 C" `UPDATE wp_users  SET user_login = 'YourNewUsername' WHERE user_login  = 'Admin';
2 d3 T- o% S5 b: A! |) Y7 P
+ V) w4 @/ c8 @1 Q9 T0 k7 _' C# W8 c+ J! F
  手動重置WordPress密碼
+ K8 H. ^) m9 B3 P# j2 C( ]
/ w/ H1 h, Y: m3 d# j: H5 y9 H  如果你是你的WordPress網站上的唯一作者,並且你沒有修改默認用戶名, 這時你可以用下面的SQL查詢來重置密碼(把其中的PASSWORD換成新密碼):8 h! W- O- O& C! h7 w7 D
; R6 F4 }/ t; F
以下為引用的內容:( C9 c9 [) |& Y  U
UPDATE `wordpress`.`wp_users`  SET `user_pass` = MD5('PASSWORD') 6 J6 @+ T: d; @) ?% q
WHERE `wp_users`.`user_login`  =`admin` LIMIT 1; - G& N& }6 q+ T# U" b
' D% }# C2 R: |" p6 l

7 P1 C- h3 H( _# X  搜索並替換文章內容
! J# P, ?# F. c/ g
/ ^1 B& f/ p  {' t! a  OriginalText換成被替換內容,ReplacedText換成目標內容:
! i) E' y# k  {$ l. V+ |8 H
0 C) q: \: ]$ C6 l以下為引用的內容:
6 K5 ?+ m0 C0 n
5 I/ {6 q, @& Y7 RUPDATE wp_posts SET `post_content`! \5 h) ]8 o3 }5 t. J: ]! V
= REPLACE (`post_content`,
5 i3 K3 c2 I6 U5 r- S6 q, g'OriginalText','ReplacedText');$ v& H% f9 t+ x# J; f

* p' L* m# m" }" f' K
. W0 T4 Q" ^6 h9 C9 D' ?) w# l5 u
4 i' Q/ M  n0 t  更改圖片URL' W# D3 b7 K" |$ g/ F' q+ S1 a

8 ?" Z5 F$ ~6 J& Q: u  下面的SQL命令可以幫你修改圖片路徑:
; q5 d  `( `. M: z: j0 S1 I% |; i, O: ]# ?; h8 d6 _3 d
以下為引用的內容:
: F) O7 H' Z* d4 ?1 W
- g  m1 `, e+ J* s& tUPDATE wp_postsSET post_content  = REPLACE (post_content, 'src=」http://www.myoldurl.com',  
* ^& k+ p% t4 E6 r2 ^  e'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 | 顯示全部樓層
俺從來沒有學過 直接使用呵呵
回復 给力 爆菊

使用道具 舉報

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

本版積分規則

4um點基跨境網編創業社區

GMT+8, 2024-11-24 03:18

By DZ X3.5

小黑屋

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