过期域名预定抢注

用戶名  找回密碼
 免费注册

20個wordpress sql數據庫查詢語句

[複製鏈接]
發表於 2011-3-31 14:20:47 | 顯示全部樓層 |閱讀模式
  WordPress將其所有信息片段(包括文章、頁面、評論、Blog鏈接、插件設置等)存儲在MySQL數據庫中。 雖然WordPress用戶可以通過網站後台編輯控制以上信息片段。 在一定程度上。
  z9 c' _1 k$ i# Q5 @- X9 l& a  X8 N) Z& s, X
  不過假設你的WordPress網站上有成百上千篇文章,而你需要進行全站範圍的改動, 這時從後台逐條編輯就有點費時費力了,並且犯錯的幾率也會提高。 最好的方法是進入WordPress的MySQL數據庫執行必要的查詢(改動)。 通過MySQL可以迅速地完成以上任務,為你節省更多時間。
" B  H9 ?% Q; j4 h" h1 [# w. H, L+ {$ a7 _3 e
  下面要介紹的就是一些省時省力的WordPress SQL查詢方法。
& ^- _6 T5 R  m7 r6 {% [9 J; V" [) b
  事先備份
# y4 W( W& v( x  Q1 `& e
$ S8 x, o% N+ t1 F6 h  WordPress數據庫裡存儲了你精心發表的每一篇文章,來自你的讀者的所有評論,以及你對自己網站進行的所有個性化設置。 因此,無論你對自己有多自信,都請記住一定要事先備份WordPress數據庫。 你可以通過備份插件進行備份。9 V" d1 x1 ~5 z/ w" r" W
% s( `3 E% L) z' m9 J, b: L1 u
  為所有文章和頁面添加自定義字段. p' j; h, _2 [5 Z0 p7 Y

  {* o2 s+ s8 {2 n+ d! j  這段代碼可以為WordPress數據庫內所有文章和頁面添加一個自定義字段。 你需要做的就是把代碼中的『UniversalCutomField『替換成你需要的文字,然後把『MyValue『改成需要的值。
; {+ I7 Z! t, g4 r/ |, Q/ w/ p8 _( Z! l& E! I% I9 ~- N7 o
以下為引用的內容:4 o2 A: ~0 k) |* K

. A6 g' o2 ~& i( N6 R  bINSERT INTO wp_postmeta  (post_id, meta_key, meta_value)! L* a( @2 [/ |2 d8 X# q1 I
SELECT ID AS post_id,  'UniversalCustomField'* g; T& P" \. ]0 j( @$ K
AS meta_key 'MyValue AS  meta_value FROM wp_postsWHERE ID NOT IN (SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField');  
8 w$ _0 N% I" |$ I# O% B
. f0 J& k4 y3 }& r" C! z9 `6 X) ?. {: T5 L
  如果只需要為文章添加自定義字段,可以使用下面這段代碼:
0 H1 p& U, H; U! ]% Z( Q- a1 y% \7 b
8 g2 W4 m9 I) Y0 B* j) N以下為引用的內容:/ E2 k- b8 o# o
3 o& r  f# C+ X' J
INSERT INTO wp_postmeta  (post_id, meta_key, meta_value)' G8 p5 b2 t$ t& u, H
SELECT ID AS post_id,  'UniversalCustomField'; {0 i5 Z' n* i4 j
AS meta_key 'MyValue AS  meta_value. S' p% b% T$ P9 b* a
FROM  wp_posts WHERE ID NOT IN. J6 g6 _* }# R5 O4 Z
(SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')`` AND post_type = 'post';  
& ~/ i: h  u  `! G  w2 z/ [1 W, d' i$ U" H
! o5 ]; c# d( S9 X
  如果只需要為頁面添加自定義字段,可以使用下面這段代碼:
4 u; j+ k, |+ Z3 _$ @! F. s* ^: Z  J2 B- a
以下為引用的內容:
: {# M. Z+ G) K; N& f7 @/ W! d
INSERT INTO wp_postmeta  (post_id, meta_key, meta_value)
1 Z3 k$ K# L( x9 |SELECT ID AS post_id,  'UniversalCustomField'- d8 Q" J  M1 i/ m: o, f
AS meta_key 'MyValue AS  meta_value4 G. @9 `: X+ [& S" M- i
FROM  wp_posts WHERE ID NOT IN
& D3 K& q" @$ V# o# w(SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')AND `post_type` = 'page';9 m, F5 P$ o( y& V, X9 p' n- T+ P
. X9 Y0 P+ ]% J7 Z

8 _' u( U2 |  G
9 }2 r: ]8 k- m; y  刪除文章meta數據- A4 `) [0 y+ y" x- R; v3 }0 y5 ~

; y5 w. P- z6 v; H7 E0 n6 D9 n2 D  當你安裝或刪除插件時,系統通過文章meta標籤存儲數據。 插件被刪除後,數據依然會存留在post_meta表中,當然這時你已經不再需要這些數據,完全可以刪除之。 記住在運行查詢前把代碼裡的『YourMetaKey『替換成你需要的相應值。
' {5 r5 G& j2 G6 t9 F* G4 n2 K; [( ^1 t
以下為引用的內容:
- G% d9 f! x. L& j& tDELETE FROM  wp_postmeta WHERE meta_key = 'YourMetaKey';
& D( l+ G# H- Y( F# `- b& ^2 i
+ e% k' C* P) j$ @
% M3 U3 P  k/ J9 N( L8 T  查找無用標籤% a/ Q0 Y" E; [5 o. @3 O$ T
) v1 H2 W7 `; @6 z  E6 i; h
  如果你在WordPress數據庫裡執行查詢刪除舊文章,和之前刪除插件時的情況一樣,文章所屬標籤會留在數據庫裡,並且還會出現在標籤列表/標籤雲裡。 下面的查詢可以幫你找出無用的標籤。. m  R/ R" c/ C4 N, t$ F# L9 S

6 z) I4 O$ |/ F. x$ J, h以下為引用的內容:
1 v" {) T% x( }  z. c: w  E
0 }/ h0 Y/ m: g( j/ h9 ySELECT * From wp_terms wtINNER JOIN  wp_term_taxonomy wtt ON wt.term_id=wtt.term_id
" A+ j5 b# E+ a" JWHERE wtt.taxonomy='post_tag'  AND wtt.count=0; 2 h) Y! `$ [  I# n7 _3 ^+ [

( A6 G9 q. T1 ~& p9 ?* Z  \0 y+ Y$ `! d8 O- r
  批量刪除垃圾評論4 W) @/ V4 ~, w# s, c) G# X  ?
- ^# I( t9 J+ g# j' `
  執行以下SQL命令:
4 r1 }' Y7 u* z. M% z
" W# v, E) c8 ^0 P5 A以下為引用的內容:
+ P: |, S; h2 u+ z5 q2 v, tDELETE FROM  wp_comments WHERE wp_comments.comment_approved = 'spam';
5 s% k) r. F' C, F
" A# a* o) ?0 K1 j# W2 ~, B! g8 z' x1 I, Z( k

( \, X- Z! M! N% l6 u# J1 J: B+ ?% I  批量刪除所有未審核評論5 V7 [3 s: L. |9 }  c

% ]& `! u9 S) [6 T  V, q  這個SQL查詢會刪除你的網站上所有未審核評論,不影響已審核評論。, I) Q1 k1 `& D+ S. `. h3 S5 Y
$ j- D3 C7 F8 ^- e, v
以下為引用的內容:# {9 m/ F1 M% {  F0 s9 Z( Z# [
DELETE FROM  wp_comments WHERE comment_approved = 0 + O7 [+ R4 R- A
: r  x: }: X2 b1 ]/ z
6 X" y4 p8 \2 |. }4 d' ?: R2 ?$ K
  禁止評論較早文章
0 L0 Q; o7 @4 b6 x+ h
, b- ~; c1 }3 o* r  指定comment_status的值為open、closed或registered_only。 此外還需要設置日期(修改代碼中的2010-01-01):
" c( W: K, w* K: `
+ e' S. H9 Q; c9 e' a# e9 ^- m! j以下為引用的內容:
1 [9 w2 [2 A. k! d) J$ n' J" i" F0 B1 rUPDATE wp_posts  SET comment_status = 'closed' WHERE post_date  < '2010-01-01' AND post_status = 'publish';  
! @) Y: |3 ]4 }3 a7 I& N# D6 O
3 z+ o* r7 N4 \( F+ c" u5 m. D5 m+ q
  停用/激活trackback與pingback8 h8 i1 _' E4 F

- `5 U3 S8 l1 r" Y$ k+ z' e        指定comment_status的值為open、closed或registered_only。
/ v& R- p+ t  z1 _
% C6 }* s$ I8 d- [% V4 ?4 Z7 J  向所有用戶激活pingbacks/trackbacks:
* }9 z* y; Y, d: Y9 ~" ]# D" O4 U. n% |3 ~5 w" Y" `: f
以下為引用的內容:
; x3 z8 [& \+ I& d4 jUPDATE wp_posts SET ping_status = 'open'; + Q8 U+ V- X3 w0 |3 _/ {

0 ]+ I3 Y& C5 F: }; M1 I0 @' O1 q
  向所有用戶禁用pingbacks/trackbacks:% _+ g8 p1 {5 w8 T
" b1 b* P9 s+ e9 ^" v
以下為引用的內容:; S- H% x) \2 G8 G( w+ \
UPDATE wp_posts SET ping_status = 'closed';  
# b) W, Y9 R5 V' Z
8 G) V+ b$ U1 J
$ p7 f2 Y( N1 g, m+ n; R* q4 H  激活/停用某一日期前的Pingbacks & Trackbacks& D5 q. @! r; g  |  f" H0 G  a
" h4 P5 ?4 n; `2 X- m/ a
  指定ping_status的值為open、closed或registered_only。 此外還需要設置日期(修改代碼中的2010-01-01):
1 w$ \# _% O8 ~, y2 m- O8 f/ i& U" f0 m4 F( \1 i9 A
以下為引用的內容:8 {; \$ q# v- y" m. Q$ {
UPDATE wp_posts  SET ping_status = 'closed' WHERE post_date  < '2010-01-01' AND post_status = 'publish';
$ {& f$ G0 P5 q5 _. c; h
1 s& O5 W; a, H" f; o5 _! o! r9 V# B9 W1 Y* Q0 \: y
  刪除特定URL的評論
9 O) D5 _; o, U' ^( S; T7 i8 c/ I* ?
% L* `/ X$ }' w0 M  當你發現很多垃圾評論都帶有相同的URL鏈接,可以利用下面的查詢一次性刪除這些評論。%表示含有「%」符號內字符串的所有URL都將被刪除。
( T/ x! C1 A: G! q  w3 L6 s
* Y2 `7 H$ w. X( _! |# D% ]以下為引用的內容:
/ `! j) |# ?; W% {+ {DELETE from  wp_comments WHERE comment_author_url LIKE "%nastyspamurl%"  ;
: m" `( M* S0 I- V! x1 C4 [( ~* L1 R3 c. L; K1 A4 f

" o) A* ^; Q9 q$ o2 A  識別並刪除「X」天前的文章
9 ]1 _- k4 G# _, c# F- G
( ?0 F4 l8 `& c1 Z! q% Q, p, q2 s; g  查找「X」天前的所有文章(注意把X替換成相應數值):
! C' x. i, |$ z" O& s5 [. _3 o/ L& n! A1 G0 k! k
以下為引用的內容:; }9 p: P+ [+ }+ @8 @9 J" `

& R) E$ S) a2 RSELECT * FROM `wp_posts`
+ v/ L/ F5 s/ wWHERE `post_type`  = 'post'AND DATEDIFF(NOW(),  `post_date`) > X  
' P2 e% ]" D" O5 M6 f1 R
  |( v* J" y) m' ]; u- g
+ b# N0 v  r7 \! O+ _  刪除「X」天前的所有文章:
) Q8 s1 k4 }5 S( v+ v! D( Q9 V: e2 ^& S
以下為引用的內容:0 E# k5 r3 U9 N+ z9 D8 `

$ z+ k7 y6 C# J3 s4 R2 v/ S$ qDELETE FROM `wp_posts`6 s7 M% d/ O5 }4 n
WHERE `post_type`  = 'post'AND DATEDIFF(NOW(),  `post_date`) > X' R) \& c0 b7 z- I: I

/ ^, k$ ^4 V/ @% b9 [
4 n3 o8 K! B' F! L; W; \8 g1 X5 x5 P5 n* y* r7 E
  刪除不需要的短代碼
+ m& x7 @5 u' a' E* {+ k7 K& K) r% V4 M; ^& D- J  \
  當你決定不再使用短代碼時,它們不會自動消失。你可以用一個簡單的SQL查詢命令刪除所有不需要的短代碼。 把「tweet」替換成相應短代碼名稱:
1 m* o" t, v  w3 W# n& J$ P/ ]/ e. s) w$ v3 j
以下為引用的內容:, V+ q5 |3 r, }4 F' W
UPDATE wp_post  SET post_content = replace(post_content, '[tweet]', '' )  ;
' E0 o" s' J+ E! \# t, O1 ^; @7 y* D. K; }( H

7 n0 j8 F( n: c9 r8 Y9 }6 b  將文章轉為頁面8 w+ }+ |9 e: e4 d5 B7 r- p& d( V) A: @
0 o" \7 H. R; a( r
  依然只要通過PHPMyAdmin運行一個SQL查詢就可以搞定:
+ k/ m" b9 x; N$ ]8 S/ r! r+ C* t2 r- }1 ~) @2 U$ {
以下為引用的內容:
4 t( H/ c- h1 d% EUPDATE wp_posts  SET post_type = 'page' WHERE post_type =  'post' ' m& ?! e* y. n5 u1 k

3 X  }( g# b, t: M+ ]5 n# M0 W" U+ T* p% V; K1 s5 Y
  將頁面轉換成文章:3 g" F( H) j' V! E2 o
3 {1 k6 U6 \0 k+ q" [3 ^
以下為引用的內容:8 M, w8 M0 P. ^+ r
UPDATE wp_posts  SET post_type = 'post' WHERE post_type =  'page' 6 G  u7 n- u( t: ~8 k# c* E6 w
" \+ i; V3 G. B. b' _7 \5 h0 [8 y
2 P5 f; I: g1 ]+ V! g7 J: l
  更改所有文章上的作者屬性3 P" |1 m8 J8 m3 s/ e2 q( ]

/ j0 K4 ]( C0 }) k1 t/ Y% L& O9 W  首先通過下面的SQL命令檢索作者的ID:; i) v) J/ y7 _$ M$ Y1 Q6 |

1 B' t% z8 @, Z3 T6 F) w( g以下為引用的內容:
- m  c2 l% S7 ]  Z- b, YSELECT ID,  display_name FROM wp_users; . F! U- d( W7 r# H$ e2 w/ E5 R

& ^$ @5 Y+ z9 W7 ^+ D2 m/ U6 K6 q# G3 Z, L1 i: Y
  成功獲取該作者的新舊ID後,插入以下命令,記住用新作者ID替換NEW_AUTHOR_ID,舊作者ID替換OLD_AUTHOR_ID。4 p6 I; D5 X, H" s4 t% d- d

) e2 [! g" b* n以下為引用的內容:
! m$ N: _& T/ K) a2 t  A3 cUPDATE wp_posts  SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;
" ?  N. g2 \1 y9 F+ _
" K% {+ D  ]2 R) Q" _1 I1 O
* @; g# t) q0 V- l* c1 ?     批量刪除文章修訂歷史
" E+ ^7 h# w% I' i/ S2 e7 x$ M% r$ u! b0 n: p$ f- n' R
  文章修訂歷史保存可以很實用,也可以很讓人煩惱。 你可以手動刪除修訂歷史,也可以利用SQL查詢給自己節省時間。$ C9 [5 F7 s1 D

0 H9 T, a: w: d! J以下為引用的內容:0 v: C/ ]2 j% i9 l" r; J
DELETE FROM  wp_posts WHERE post_type = "revision"; 6 B8 U8 v, r2 U4 t) M/ x

6 W9 |7 F4 Q. O
% V# z  x: J0 \3 K$ l! K% I9 Q  停用/激活所有WordPress插件
9 K. o! R3 g; R# l
9 u$ S5 c4 F9 M/ L3 M  激活某個插件後發現無法登錄WordPress管理面板了,試試下面的查詢命令吧,它會立即禁用所有插件,讓你重新登錄。
2 l9 |8 @4 f6 M
2 o% F7 s5 K5 A以下為引用的內容:
8 p& f/ s( \" D* v9 dUPDATE wp_options  SET option_value = 'a:0:{}' WHERE option_name  = 'active_plugins'; * W2 o" Z/ k) K+ N9 _

' w' y+ f& T9 D( I% \& v
" {$ |) u/ B/ Y+ `' @( U  更改WordPress網站的目標URL
& N1 G8 B3 K( U6 n2 ?' B5 d2 I0 C' \5 X0 g
  把WordPressBlog(模板文件、上傳內容&數據庫)從一台服務器移到另一台服務器後,接下來你需要告訴WordPress你的新Blog地址。
  C. I% `( r8 E( O" x& t
9 ?/ }! w( N3 b2 j  使用以下命令時,注意將http://www.old-site.com換成你的原URL,http://www.new-site.com換成新URL地址。% g- f' }) F+ I+ Q8 Z9 A& W
5 Z  f6 d/ G1 l- I$ S: q
  首先:8 I8 w, q% \2 |! a" \7 Q
' Y3 \4 Z$ [; _: X
以下為引用的內容:" e* Z8 {$ [, P& v) k
UPDATE wp_options  
6 R8 l( D0 |8 z3 |5 GSET option_value = replace(option_value, 'http://www.old-site.com', 'http://www.new-site.com') # _. k  J0 C8 u- Y6 H3 x/ z5 v5 D3 W
WHERE option_name  = 'home' OR option_name = 'siteurl'; ! b% g- [6 ~. e
! T! z. s  M8 Z& w
+ y) ?9 C9 f% {4 m0 R, G1 m, K) p
  然後利用下面的命令更改wp_posts裡的URL:
# N, u# ~8 I+ T+ }* t2 o* ?7 p: z
以下為引用的內容:
' x5 f. ^# \6 JUPDATE wp_posts  SET guid = replace(guid, 'http://www.old-site.com','http://www.new-site.com);
6 Q5 p2 O; B# p# D
. h- @" p) p$ M* S* A! A+ X7 Z4 R1 K- t8 J1 ?/ U1 N% \( _
  最後,搜索文章內容以確保新URL鏈接與原鏈接沒有弄混:1 J  g/ R& A8 t$ r- _7 j5 H+ P

: M1 C' E7 p- ]- Q) J以下為引用的內容:( R& D5 Z: T- ?; c( {( |
UPDATE wp_posts  4 Y. I9 w  w! p: ^4 w9 ^
SET post_content = replace(post_content, ' http://www.ancien-site.com ', ' http://www.nouveau-site.com '); ) M! d9 f6 Y" W# R

$ s; p0 A* F4 \7 t6 s' ], l. _6 G; z" b6 k7 x  q+ @1 K4 p+ F
  更改默認用戶名Admin7 g) P2 X. Y. ^  T/ w

2 t4 _. c+ K% ?! u. M  y8 `  把其中的YourNewUsername替換成新用戶名。
7 i; s/ H6 Y7 |) P: ?9 ^" z( I) g0 k, d. Y
以下為引用的內容:! B0 p" `$ x1 ?: d$ e6 I
UPDATE wp_users  SET user_login = 'YourNewUsername' WHERE user_login  = 'Admin'; 7 f$ A9 D8 F8 z
5 R6 V6 _. Z) R/ q" M# @

0 O8 _% I& l8 {  u' |  手動重置WordPress密碼; {9 X) S1 z  P4 [

' v; `# w) y  n; Q4 B- R0 a$ X  如果你是你的WordPress網站上的唯一作者,並且你沒有修改默認用戶名, 這時你可以用下面的SQL查詢來重置密碼(把其中的PASSWORD換成新密碼):- [5 i  p) _: K; y
4 b) G4 Y: y! k* k% ]
以下為引用的內容:+ a( K& ^! h' P; G9 u0 x3 x
UPDATE `wordpress`.`wp_users`  SET `user_pass` = MD5('PASSWORD')
# A9 L$ O) R# \WHERE `wp_users`.`user_login`  =`admin` LIMIT 1; ( n2 B+ `3 [( Z4 z
$ k5 [+ I  g/ a

1 t# l8 y5 t$ W" D  搜索並替換文章內容% y; ~/ }+ f5 A
' ?$ U/ M0 q# G% q
  OriginalText換成被替換內容,ReplacedText換成目標內容:, p4 `  `/ X6 X9 F- N

" {! v* g; [6 e* @7 K$ w3 [以下為引用的內容:
6 `& c! E) Q; i2 a$ }
8 B, `* l% @8 M- V7 SUPDATE wp_posts SET `post_content`6 E" e/ D8 _' N8 m/ z5 A* y& I8 K
= REPLACE (`post_content`,
/ O4 l# s$ z2 |$ m) F. ]0 M'OriginalText','ReplacedText');& _; E8 E, y% M( x% ?

7 e; \5 r! a* h/ ?
2 L; u6 A7 X# _. N
5 Q, t" ]5 n6 i+ x" I9 I5 U  更改圖片URL! M0 I+ Y2 w2 ^+ }! Y& p* f
/ L( y  r3 M* r% A. U2 R
  下面的SQL命令可以幫你修改圖片路徑:1 \! W7 ~( G6 U+ {7 d
4 F. L* l4 n+ |0 d
以下為引用的內容:# |, d# l) u  I" ]. N8 {

$ k  }/ v( K' O( X5 pUPDATE wp_postsSET post_content  = REPLACE (post_content, 'src=」http://www.myoldurl.com',  
  d8 @5 W  G. `( @' K) y9 z'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-11 07:16

By DZ X3.5

小黑屋

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