說明:數據庫查詢
此幫助頁面需要更新。 (2013年12月14日) |
目前數據庫查詢功能已經禁止,但您可以請求一個Toolserver用戶為您進行數據庫查詢,詳見tswiki:Query service。
下面是一些查詢數據庫的實例。
限定查詢數量
編輯使用limit命令:
SELECT ... LIMIT 20
這個命令返回20條記錄。
SELECT ... LIMIT 100, 20
這個命令返回從101條記錄開始的20條記錄。
查詢新用戶
編輯- SELECT user_name, COUNT(*) FROM user, cur WHERE user_id=cur_user GROUP BY user_id ORDER BY user_id DESC LIMIT 20
這個語句返回最近創建的最多20個用戶的用戶名,並顯示這些用戶所編輯的條目數。這條語句顯示的編輯的條目數不包括被其他用戶修改的條目。
- SELECT user_name, COUNT(*) FROM user, old WHERE user_id=old_user GROUP BY user_id ORDER BY user_id DESC LIMIT 20
這個語句返回被其他用戶修改過的條目數量。
查詢短條目
編輯- SELECT cur_title FROM cur WHERE cur_is_redirect=0 AND LENGTH(cur_text)<50 AND cur_text LIKE '%see%'
這個語句返回小於50個字符的所有頁面。
查詢不適當的連結
編輯- SELECT l_from,l_to,cb.cur_text AS rt,cb.cur_title AS ti FROM links,cur AS ca, cur AS cb WHERE ca.cur_is_redirect=1 AND cb.cur_is_redirect=1 AND l_to=cb.cur_id AND l_from=ca.cur_title LIMIT 250
這個語句返回有雙重重定向的頁面
- SELECT cur_title FROM cur WHERE cur_text LIKE "%http://%.jpg%" AND cur_namespace=0
這個語句返回連結有外部的jpg圖像的條目。
- SELECT cur_title FROM cur,links WHERE cur_is_redirect=0 AND cur_namespace=0 AND l_from=cur_title AND l_to=cur_id LIMIT 20
這個語句返回有自我連結的頁面。
- SELECT cur_title FROM cur,brokenlinks WHERE bl_from=cur_id AND cur_is_redirect=1
這個語句返回重定向到不存在的頁面。
查詢有特殊標記的頁面
編輯- SELECT cur_title FROM cur WHERE cur_namespace=0 AND cur_is_redirect=0 AND cur_text NOT LIKE "%'''%" AND cur_text NOT LIKE "%<b>%" LIMIT 50
這個語句返回不包含粗體標記的頁面。
- SELECT cur_title FROM cur WHERE cur_namespace=0 AND cur_is_redirect=0 AND cur_text NOT LIKE "%'''%" AND cur_text NOT LIKE "%<b>%" AND cur_text NOT LIKE "%disambiguation%" LIMIT 50
這個語句返回不包含粗體標記的頁面,其中不包括消含糊頁。
- SELECT cur_title FROM cur WHERE cur_namespace=0 and cur_title like "%/%" and cur_is_redirect=0
這個語句返回含有「/」符號的頁面。
- SELECT CONCAT("Wikipedia:",cur_title) AS cur_title FROM cur WHERE cur_namespace=4 AND cur_is_redirect=0 ORDER BY cur_title
這個語句返回標題含有Wikipedia:的條目。
查詢一些統計數據
編輯- SELECT COUNT(*) FROM cur WHERE LENGTH(cur_text)>1500 AND cur_namespace=0
這個語句返回字符個數大於1500的條目數量。
- SELECT DISTINCT ipb_address, COUNT(*) AS times, MIN(ipb_reason) AS reason, user_name AS blocker, DATE_FORMAT(MIN(ipb_timestamp), '%b %e %Y %k:%i') AS date FROM ipblocks, user WHERE user_id=ipb_by GROUP BY ipb_address ORDER BY ipb_timestamp
這個語句返回被禁封的用戶。
- SELECT CONCAT("*[[User:",user_name,"|",user_name,"]]") from user where user_rights != "" ORDER BY user_name LIMIT 100
這個語句返回站長和開發者的信息。
- SELECT COUNT(rc_title) FROM recentchanges WHERE rc_timestamp LIKE '20030623%'
這個語句返回20030623這一天所作的所有改變的數量。
- SELECT old_title, count(old_timestamp) AS count FROM old GROUP BY old_title ORDER BY count DESC
這個語句返回各個條目的編輯次數.
- SELECT rc_title, count(rc_timestamp) AS count FROM recentchanges GROUP BY rc_title ORDER BY count DESC LIMIT 100
這個語句返回最近編輯過的條目的編輯次數。
- SELECT rc_title, cur_counter FROM cur,recentchanges where rc_title like cur_title GROUP BY rc_title ORDER BY cur_counter DESC LIMIT 200
這個語句返回最近瀏覽次數最多的100條條目,用於首頁的熱點條目。
- SELECT cur_title,cur_is_new,cur_counter FROM cur where cur_is_new=1 GROUP BY cur_title ORDER BY cur_counter DESC LIMIT 100
這個語句返回按瀏覽次數排序的前100條新建條目。
- SELECT cur_title,cur_is_new,cur_timestamp,cur_counter FROM cur where cur_is_new=1 GROUP BY cur_title ORDER BY cur_timestamp DESC LIMIT 100
這個語句返回按建立時間的前100條新建條目。
- SELECT cur_id,cur_title,cur_timestamp,cur_counter FROM cur GROUP BY cur_title ORDER BY cur_id DESC LIMIT 100
這個語句返回按建立順序排列的前100條條目。
- SELECT rc_title,rc_new,cur_counter FROM cur,recentchanges where rc_new=1 AND cur_title LIKE rc_title GROUP BY rc_title ORDER BY cur_counter DESC LIMIT 100
這個語句返回按瀏覽次數排序的最近新增條目。
- SELECT rc_title,rc_new,count(rc_timestamp) as count FROM recentchanges where rc_new=1 GROUP BY rc_title ORDER BY count DESC LIMIT 100
這個語句返回按編輯次數排序的最近新增條目.
- SELECT rc_title,rc_new,LENGTH(cur_text) as count FROM cur,recentchanges where rc_new=1 and rc_title like cur_title GROUP BY rc_title ORDER BY count DESC LIMIT 100
這個語句返回按文章長度排序的最近新增條目,用於首頁的新增條目統計。
- SELECT cur_title,cur_counter FROM cur WHERE LENGTH(cur_text)=0 GROUP BY cur_title ORDER BY cur_counter DESC LIMIT 100
這個語句返回按瀏覽次數排序的文本長度為0的條目,用於首頁的待撰條目統計.
- SELECT bl_to,count(cur_title) as count FROM cur,brokenlinks WHERE bl_from=cur_id AND cur_is_redirect=0 GROUP BY bl_to ORDER BY count DESC LIMIT 100
查詢待撰條目。
- SELECT cur_title,count(cur_title) as count FROM cur, brokenlinks where cur_text LIKE "%Wikipedia:尋找並修理兔尾巴%" and bl_from=cur_id AND cur_is_redirect=0 GROUP BY cur_title ORDER BY count DESC LIMIT 100
查詢兔尾巴。
日誌
編輯- 日誌文件記錄了最近幾個月來的所有的查詢紀錄。
詳細的數據庫字段的描述請看SCHEMA.DOC。