过期域名预定抢注

 找回密碼
 免费注册

20個wordpress sql數據庫查詢語句

[複製鏈接]
發表於 2011-3-31 14:20:47 | 顯示全部樓層 |閱讀模式
  WordPress將其所有信息片段(包括文章、頁面、評論、Blog鏈接、插件設置等)存儲在MySQL數據庫中。 雖然WordPress用戶可以通過網站後台編輯控制以上信息片段。 在一定程度上。, }1 q+ V4 J" I7 {; U" F
& {* f% e5 K/ N6 p3 Y9 E# z1 a
  不過假設你的WordPress網站上有成百上千篇文章,而你需要進行全站範圍的改動, 這時從後台逐條編輯就有點費時費力了,並且犯錯的幾率也會提高。 最好的方法是進入WordPress的MySQL數據庫執行必要的查詢(改動)。 通過MySQL可以迅速地完成以上任務,為你節省更多時間。9 a3 D3 S( G! s' a4 C6 b/ f
8 w$ R( q* z! ]& Y9 I- C4 ^
  下面要介紹的就是一些省時省力的WordPress SQL查詢方法。
' K6 y* K' n5 Q% A$ E
! c2 k! a! A$ F4 D3 Z8 m! h" K8 v  事先備份
" E; \) K- j2 w3 f! ^5 I4 K: w/ k2 J# i; U. N% Z" D) T( G
  WordPress數據庫裡存儲了你精心發表的每一篇文章,來自你的讀者的所有評論,以及你對自己網站進行的所有個性化設置。 因此,無論你對自己有多自信,都請記住一定要事先備份WordPress數據庫。 你可以通過備份插件進行備份。
0 t  b; s3 [: X( ?7 D5 q9 H$ _# Z
  為所有文章和頁面添加自定義字段
1 N" W9 f: s4 V6 B
0 F. o+ m/ V0 U' N+ [/ P  c4 h  這段代碼可以為WordPress數據庫內所有文章和頁面添加一個自定義字段。 你需要做的就是把代碼中的『UniversalCutomField『替換成你需要的文字,然後把『MyValue『改成需要的值。
- ?) k" l3 g4 E" `3 W3 V( l8 A6 d+ `' {
以下為引用的內容:% d1 V& P2 Y, g: g6 ~, N
9 c6 L0 J7 T# v
INSERT INTO wp_postmeta  (post_id, meta_key, meta_value)
8 H% V; V/ E8 Q+ V4 s* lSELECT ID AS post_id,  'UniversalCustomField'( j7 L' z7 A2 [0 `: Z( Y6 {
AS meta_key 'MyValue AS  meta_value FROM wp_postsWHERE ID NOT IN (SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField');  
. s$ t# [/ w1 x3 d$ H" q: l0 W4 q
) [' {" ]7 l& }1 T8 J( z8 o' l6 {; k! T1 e5 b5 E( c
  如果只需要為文章添加自定義字段,可以使用下面這段代碼:) z1 K8 s5 i2 G6 \9 M& B1 P
' g1 e- {: ^: z" r( ^6 I9 g: q
以下為引用的內容:- C4 Q, T( {5 `
' c$ a9 f+ h" A6 q. x0 Y1 o2 I3 y
INSERT INTO wp_postmeta  (post_id, meta_key, meta_value)+ Q2 x8 a8 I; I/ i! d1 }
SELECT ID AS post_id,  'UniversalCustomField'
, B2 J" b& ?7 R6 m+ b- }2 SAS meta_key 'MyValue AS  meta_value: ^3 H6 a6 {4 [1 E# t$ Y  u! x6 H8 W) y
FROM  wp_posts WHERE ID NOT IN
6 w' G9 t! f9 T0 @9 S1 Q- |9 O( L6 V(SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')`` AND post_type = 'post';  
" y6 j% D3 _, @  {
; j6 W, c& _% u2 v$ q5 u+ r# l( N
( }+ m/ n( A6 ~) g0 K! G  如果只需要為頁面添加自定義字段,可以使用下面這段代碼:; ~7 W4 b3 F( w9 a$ v9 x. }
3 ]5 x. [: O  Z9 S$ O6 ^9 I
以下為引用的內容:
$ M% c% k0 V9 o: H% }6 c
" `2 V% N  z1 }2 S# ~0 m1 dINSERT INTO wp_postmeta  (post_id, meta_key, meta_value)  s; w& A! k3 ?( W6 k" Z8 C
SELECT ID AS post_id,  'UniversalCustomField'; v/ D+ {: v3 [  o+ O7 m5 r
AS meta_key 'MyValue AS  meta_value# L1 ^% R4 T: y2 o9 `
FROM  wp_posts WHERE ID NOT IN" w5 S9 I+ n, a5 ^% C
(SELECT  post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')AND `post_type` = 'page';
* H+ O1 x, S9 g# U$ o: B- h3 \5 S+ e7 B
; K. q' Q! v, Z8 I) _! R# G6 f) ~

6 l/ [3 e1 g  H5 z9 G% c  刪除文章meta數據
" z* I* R& {! \0 @! z9 Z6 n- @; z* ]2 O; d) T6 c
  當你安裝或刪除插件時,系統通過文章meta標籤存儲數據。 插件被刪除後,數據依然會存留在post_meta表中,當然這時你已經不再需要這些數據,完全可以刪除之。 記住在運行查詢前把代碼裡的『YourMetaKey『替換成你需要的相應值。
7 B% C( Q$ }2 v
# R" p8 _9 Q) f# K( _; u以下為引用的內容:
6 j5 ^3 y/ j+ D3 J" aDELETE FROM  wp_postmeta WHERE meta_key = 'YourMetaKey';
" i! y- ^( {0 R6 d* e+ i% v1 O. I+ K( |4 ~3 A

! |9 W5 d' y; \/ Y  查找無用標籤
4 E( i- d7 J! X: Z  K" X, V4 o
8 P! Q. B# P' {- ^3 c& y% s  如果你在WordPress數據庫裡執行查詢刪除舊文章,和之前刪除插件時的情況一樣,文章所屬標籤會留在數據庫裡,並且還會出現在標籤列表/標籤雲裡。 下面的查詢可以幫你找出無用的標籤。
1 s+ ^( t: q; V) Q3 F( ?5 \6 w3 @+ G- L8 v
以下為引用的內容:5 i6 n# K% C: m/ t2 @: C. w

! \, `9 I9 t/ _3 ?4 iSELECT * From wp_terms wtINNER JOIN  wp_term_taxonomy wtt ON wt.term_id=wtt.term_id
' v/ ~* e, A0 L0 n; aWHERE wtt.taxonomy='post_tag'  AND wtt.count=0;
+ ?( }$ U; L6 u# D1 r7 Z; L& t( v  q8 ~" C
! s) Q7 |3 D) C: B8 X7 Q# F5 R
  批量刪除垃圾評論
( `* @. K3 h, C3 \  f' R+ X' _. g9 F/ ^( _3 c
  執行以下SQL命令:
' d6 ]  Q/ [9 W/ f  n0 o2 r( ^$ w3 w+ ?/ `
以下為引用的內容:
, ^: [) s  t' G* f$ QDELETE FROM  wp_comments WHERE wp_comments.comment_approved = 'spam';6 R1 {8 p" ?% a$ W* v6 w: T
2 F1 Z% \, Z) B, R
) m( q% N1 J! C% u/ C
! n) N9 E9 E8 S  c) d  G
  批量刪除所有未審核評論
) C5 T2 _7 D+ N
+ |# f: ]2 n! {! w, N4 g, f$ Q& d  這個SQL查詢會刪除你的網站上所有未審核評論,不影響已審核評論。
$ V3 C( N! b0 M. e/ r( z! |' |0 _( a
以下為引用的內容:( Z# _: x2 m1 g1 E0 i1 {
DELETE FROM  wp_comments WHERE comment_approved = 0 0 W8 z8 W* A% t3 P6 t9 ?' t% d6 X/ _
' x9 z# X. j" M+ W7 H; U. V' j
( l% ?' p6 f0 S* v$ {
  禁止評論較早文章" @8 k6 E5 i7 V0 x
! _* q! B0 d/ d( F: I- s" G* {
  指定comment_status的值為open、closed或registered_only。 此外還需要設置日期(修改代碼中的2010-01-01):
3 \6 L! o1 ?* I. U# @6 h& {% W$ ]9 H& o; a1 L: F- F8 ]
以下為引用的內容:9 H( G7 Y+ k) o  h
UPDATE wp_posts  SET comment_status = 'closed' WHERE post_date  < '2010-01-01' AND post_status = 'publish';  " W; V4 a7 b1 l4 O6 t
+ W3 Y! t; N4 y) Q- J. x0 B
0 D$ K  B+ S8 V# z/ @, ^2 E
  停用/激活trackback與pingback5 a+ M" Y5 m) p; @& y3 z, ?

# O& ?0 ^: {9 J; S. U        指定comment_status的值為open、closed或registered_only。" Y. P8 ?% Y% i6 V
5 m$ e& m: G: S* y1 C3 h
  向所有用戶激活pingbacks/trackbacks:8 b! T, Z  l9 i: X4 H
' o* D& Z2 o' c/ f; b
以下為引用的內容:& W; Q* G/ H  Y
UPDATE wp_posts SET ping_status = 'open'; + u  x7 K$ r" Y9 Y/ a% D% Z( c9 R

# v4 l: w  `: l, {' ]1 R8 t3 t. p/ L9 L) {. Y) D) @  k
  向所有用戶禁用pingbacks/trackbacks:
* Q  [2 H. C% Y0 v. Q) a, P4 g; X+ A9 ~# K! k, I$ t4 J8 z
以下為引用的內容:
2 ]* y3 t+ Y' ?UPDATE wp_posts SET ping_status = 'closed';  
: Q$ Z4 W0 Q) n1 Z/ J4 v* M& }# U
% [5 ^- X9 o) b4 S
( y5 b6 C) f, v7 I* n  激活/停用某一日期前的Pingbacks & Trackbacks
7 H: i1 m! I! |9 x1 {% j7 f% D! s- ^1 W: l3 w) ~
  指定ping_status的值為open、closed或registered_only。 此外還需要設置日期(修改代碼中的2010-01-01):
8 {1 P6 M& i, T% P' t+ w* |/ p7 K2 X6 i& Z: c  |
以下為引用的內容:
( n6 q3 q5 f# B9 kUPDATE wp_posts  SET ping_status = 'closed' WHERE post_date  < '2010-01-01' AND post_status = 'publish';
& r' ~4 {1 s6 y
: S$ x- j0 u8 k) W
4 g4 g# }6 t6 U  刪除特定URL的評論$ n3 Y: e; p- X8 h) h7 I; `$ k
; b0 W' c( K7 w3 m3 X7 J9 W
  當你發現很多垃圾評論都帶有相同的URL鏈接,可以利用下面的查詢一次性刪除這些評論。%表示含有「%」符號內字符串的所有URL都將被刪除。
  m$ I, Z( ^& b5 [
1 J% c. ^8 R7 W. H8 I以下為引用的內容:
8 t' b& C! i4 l1 cDELETE from  wp_comments WHERE comment_author_url LIKE "%nastyspamurl%"  ; ; {" M5 ?- {9 C/ s  f
3 W- F: u1 V4 g3 G
" H8 H5 _6 v8 e+ g# W- }, ]# h" Y
  識別並刪除「X」天前的文章1 r0 J2 b( _& P5 F; E
* ?6 j" g! h8 g2 G1 K
  查找「X」天前的所有文章(注意把X替換成相應數值):# b+ k% W& l/ G+ A0 O. ~! x
& Q% L7 {' Q& o4 Q. U
以下為引用的內容:9 q. o8 a$ J8 {" P  m
% M! P: L, n& @! Y/ q
SELECT * FROM `wp_posts`% K3 K" @2 p2 ]8 o
WHERE `post_type`  = 'post'AND DATEDIFF(NOW(),  `post_date`) > X  # J2 L+ Z) B8 J* v) n

4 ]1 ]  u& B9 _" a# P8 O9 [  z& m
  刪除「X」天前的所有文章:
: Z5 g1 I9 G% d% B
/ k: A' S/ t' r8 A2 }以下為引用的內容:) i0 N7 D  [5 k2 O4 u  t3 j/ k

6 j) [) m( ^  Y; t5 mDELETE FROM `wp_posts`
/ W8 ^7 z$ P: k/ v1 DWHERE `post_type`  = 'post'AND DATEDIFF(NOW(),  `post_date`) > X
; U1 w2 I* U! b+ X" o8 e$ L
. C( A) U$ E- F" B6 X& ?# u; i; s; ?
( h6 s/ @. [! [* Q% e5 ~: J$ |+ G1 n2 N2 P, B
  刪除不需要的短代碼
& h( y& b7 q* _
+ w  E& Q4 X# g  當你決定不再使用短代碼時,它們不會自動消失。你可以用一個簡單的SQL查詢命令刪除所有不需要的短代碼。 把「tweet」替換成相應短代碼名稱:5 N/ l' _0 ^8 z5 J/ i2 `
1 D" Y7 _$ B8 a: S9 m5 E
以下為引用的內容:
. r- m7 B1 ]# b) LUPDATE wp_post  SET post_content = replace(post_content, '[tweet]', '' )  ; / [0 K' E9 {$ w! y* {5 B$ Y, D4 R

* A/ t2 M1 B! A1 k$ x+ ?! C' m
: b. g: e( E+ i6 G. i  將文章轉為頁面
) \& y" o' J* m
' V4 u1 K( R: b9 L9 {- `) f! J  依然只要通過PHPMyAdmin運行一個SQL查詢就可以搞定:
: K* l$ k: }9 g1 H3 ?6 x9 T0 P5 @5 t
以下為引用的內容:+ G- F, O/ b, S& V
UPDATE wp_posts  SET post_type = 'page' WHERE post_type =  'post' , g0 y- H# h8 Y: N
4 C; V- u" p% M/ X
6 I0 p" O' p+ d$ i! P' z
  將頁面轉換成文章:& G  R3 M' H' V7 Y, X

- k9 p! c! z, y% K# S" `以下為引用的內容:- b6 `" |( @+ ^, [
UPDATE wp_posts  SET post_type = 'post' WHERE post_type =  'page'
$ r' F/ M8 N7 t
% d$ u8 C2 b, v. y
$ k* I: g8 Y6 M0 A1 w  t/ I  更改所有文章上的作者屬性0 P+ r# r! _! G7 J5 M+ \! J

" O- k# v; q4 u; P! H  首先通過下面的SQL命令檢索作者的ID:
/ T8 l, q# J8 ^3 S+ F1 W  o# r" b% E: F; x
以下為引用的內容:; g# z, h# P' K% v0 C
SELECT ID,  display_name FROM wp_users; 5 y7 ]4 I+ b( ]2 g! r' |

% y! n! O, R, T: i- x: N
4 F& x& b: q+ h  成功獲取該作者的新舊ID後,插入以下命令,記住用新作者ID替換NEW_AUTHOR_ID,舊作者ID替換OLD_AUTHOR_ID。6 Y, a- M. J- d. R
+ `8 ?6 o& w. E) D) S2 ^! d4 _% Z+ t
以下為引用的內容:/ A0 k' m% q( W% L* f7 }2 |3 q
UPDATE wp_posts  SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;
* e) ]$ \7 v; \
% Z! S2 N1 Z" t$ C2 V& Z6 K+ q4 l9 W5 e' M) K  P! }  U
     批量刪除文章修訂歷史; w$ p) F0 l6 F4 _3 \
) [# t9 C* G( j/ z* \
  文章修訂歷史保存可以很實用,也可以很讓人煩惱。 你可以手動刪除修訂歷史,也可以利用SQL查詢給自己節省時間。
0 P. o) R+ X- ]3 \
, Y/ E0 P: k+ _  e8 n! A0 ^/ o9 f- h以下為引用的內容:
9 x: B# Q5 H* Y* _7 UDELETE FROM  wp_posts WHERE post_type = "revision"; . m2 ?" B7 r" Q7 z6 x
5 Q* W8 ]8 W( @2 s" O
- o, U# W" w& M- Z3 M* s
  停用/激活所有WordPress插件! _6 N- B- v4 [7 A. D$ K  @
9 ^( }  L. t5 {3 B5 w6 a2 |! [
  激活某個插件後發現無法登錄WordPress管理面板了,試試下面的查詢命令吧,它會立即禁用所有插件,讓你重新登錄。
+ N+ F, p* z% |6 L
( K7 A' W8 i3 p8 {" ^, j以下為引用的內容:
1 ]6 n" K8 S& g1 u4 R' {UPDATE wp_options  SET option_value = 'a:0:{}' WHERE option_name  = 'active_plugins'; : a1 ^9 j, n6 I6 h$ R

) p, M) t9 `7 V, ~* g" A
& B' n" b2 K! M  更改WordPress網站的目標URL( t/ p3 g5 L# F3 t. m

( o% `9 b% z* O8 J/ l  把WordPressBlog(模板文件、上傳內容&數據庫)從一台服務器移到另一台服務器後,接下來你需要告訴WordPress你的新Blog地址。6 \; q& t- D" P6 P

  u( {. }! S: k. t1 _3 H  使用以下命令時,注意將http://www.old-site.com換成你的原URL,http://www.new-site.com換成新URL地址。
6 v5 }5 p" T7 I$ K! K
4 n) k* Z0 M5 y. X  首先:
& Q7 |+ {" O2 R; n& |5 O  o" E$ U/ @. a  S  X
以下為引用的內容:
& E2 [' P$ ]! Q, d! b  o2 aUPDATE wp_options  
7 K% [5 A0 ~7 B9 _SET option_value = replace(option_value, 'http://www.old-site.com', 'http://www.new-site.com')
5 _8 q' |  k/ m6 VWHERE option_name  = 'home' OR option_name = 'siteurl';
( C- u) u; _# E, J( b  j9 n. x, D1 Z& k* A2 ~5 s9 V

% {& @: U  C9 W! w9 r  然後利用下面的命令更改wp_posts裡的URL:8 b6 o7 F+ d0 l' _4 {
  N# K) P3 @8 A3 K' J4 ]9 x
以下為引用的內容:
1 c# D3 Z, q( q% m( q8 E( `" dUPDATE wp_posts  SET guid = replace(guid, 'http://www.old-site.com','http://www.new-site.com);
' X; l$ A  y9 u/ l6 a% o
  ]6 |( h( o: y3 ~5 R! R7 P8 k1 h) ]8 v7 \; i1 t
  最後,搜索文章內容以確保新URL鏈接與原鏈接沒有弄混:; ^) _4 A$ h! y! u: k" S" m
! {/ c2 ]- u* u; j# D' t
以下為引用的內容:; W8 E, r$ h% |, V
UPDATE wp_posts  * D2 x" p. X1 e4 o; S! D9 s
SET post_content = replace(post_content, ' http://www.ancien-site.com ', ' http://www.nouveau-site.com ');
% R- Y# ^1 A) b6 C! |. Z; f
8 O2 h( @4 T" i. Y8 w
. H: q# u" l* e* E6 O' O7 V  更改默認用戶名Admin
, N: U# p6 z* |7 e, E4 k6 r. P8 K
  把其中的YourNewUsername替換成新用戶名。1 H0 S( _; l8 U6 `
5 _5 R: f' O# W5 \- {! s1 ~& S6 v
以下為引用的內容:4 K9 K$ t! h) _: E7 E2 u
UPDATE wp_users  SET user_login = 'YourNewUsername' WHERE user_login  = 'Admin';
3 I5 j; t* ]! j) l$ o  M
6 F- b  O/ s7 r( F% B7 l5 Y* `8 R5 x5 l! Z" a( f
  手動重置WordPress密碼6 G. ^8 U) T1 o
- V7 D( q- }+ R) O. O$ e
  如果你是你的WordPress網站上的唯一作者,並且你沒有修改默認用戶名, 這時你可以用下面的SQL查詢來重置密碼(把其中的PASSWORD換成新密碼):
* c  r& a( y0 ]- Z* R: J3 U& _3 p: f3 l- ^
以下為引用的內容:5 M$ A4 K& i  B8 j$ e
UPDATE `wordpress`.`wp_users`  SET `user_pass` = MD5('PASSWORD') - Z4 g$ O2 b, o/ q
WHERE `wp_users`.`user_login`  =`admin` LIMIT 1;
# e0 n5 O- W* ?5 N- l* A0 N3 ~7 i# t4 ~' g/ c9 u+ o
' L+ f) p4 o. l
  搜索並替換文章內容+ P& a: N0 `9 j/ T' u: g) N! X

8 ^, Q  x# M2 A% S6 f  OriginalText換成被替換內容,ReplacedText換成目標內容:3 H: ?0 F. k  J5 K/ c& n
; d; H/ l2 ~7 b- O; R  a5 s, m: Z
以下為引用的內容:2 N. E3 K: Z. {
4 E! n" X& E6 h. L% O4 G3 b$ V
UPDATE wp_posts SET `post_content`
5 W/ W: k9 B6 T9 o= REPLACE (`post_content`,! `0 k/ ?  \! n0 m. J
'OriginalText','ReplacedText');
/ ]) b: ~) P! I& x- e  Y9 K+ p8 w# _$ H6 B# v

/ c, w  O- P+ L+ J/ I& C* Z0 v) N) D8 g" c8 K- b) U
  更改圖片URL8 e5 d/ }* y& z  I4 [2 R
4 z1 s9 {. s# b+ a# {
  下面的SQL命令可以幫你修改圖片路徑:
% u$ q! K) f" c: s8 a: ~
4 F( k) @0 _7 Q& w& j7 @4 R以下為引用的內容:
3 U% g7 Z3 y" y. p# {/ ]3 H, m) P0 m5 d4 A
2 q3 e7 X2 Z5 M8 ~7 s! n  ]UPDATE wp_postsSET post_content  = REPLACE (post_content, 'src=」http://www.myoldurl.com',  
7 p- G& g! l8 i'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-2 12:52

By DZ X3.5

小黑屋

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