利用者:Suisui/SQLクエリ

ページデータ抽出に関するSQLクエリの解析



データベースから特定のページを抽出するためのいくつかのSQLクエリが存在します。これらは、特定の条件を満たすページを選別するために使用されます。本稿では、四つの異なる条件でのページ抽出方法について詳しく解説します。

1. 半角中グロを含むページ



最初のクエリは、ページが半角中グロ「・」を含むかどうかを検証し、それに該当するタイトルを取り出します。以下のSQL文がこれに該当します。

```sql
SELECT cur_title FROM cur WHERE cur_is_redirect=0 AND cur_namespace=0 AND cur_text LIKE "%・%" LIMIT 0,200
```

このクエリでは、`cur` テーブルからリダイレクトされない、かつ名前空間が0のページを選び出します。また、テキスト中に指定した半角中グロを含むページが対象となります。最大200件までのタイトルが抽出されます。

2. 半角「」を含むページ



次に、半角カギ括弧「「」または「」」を含むページをリストアップするためのクエリがあります。これも前述の条件に従って抽出されます。

```sql
SELECT cur_title FROM cur WHERE cur_namespace=0 AND cur_is_redirect=0 AND (cur_text LIKE "%「%" OR cur_text LIKE "%」%") LIMIT 0,200
```

このクエリでも、リダイレクトされていないページを取得し、そのページ内にカギ括弧が含まれているものをフィルタリングしています。

3. 強調を含まないページ



次のクエリでは、強調表示が指定されていないページを抽出します。具体的には、リスト、削除依頼の無視を含むページを対象外にしています。

```sql
SELECT concat(' ',cur_title,'') FROM cur WHERE cur_namespace=0 AND cur_is_redirect=0 AND cur_title NOT LIKE "%一覧%" AND cur_text NOT LIKE "%'''%" AND cur_text NOT LIKE "%<b>%" AND cur_text NOT LIKE "%sakujo%" AND cur_text NOT LIKE "%Copyrights%" AND cur_text NOT LIKE "%曖昧%" AND cur_text NOT LIKE "%aimai%" AND cur_text NOT LIKE "%delete%" ORDER BY cur_title
```

複数の条件を満たさないページが対象となり、それぞれの条件に合ったページタイトルがリスト化されます。

4. BRタグを含むページ



BRタグを含んだページを抽出するためのクエリもあります。このクエリでは、BRタグが含まれたテキストのページを取得しますが、特定の条件に基づきフィルタリングされています。

```sql
SELECT concat(' ',cur_title,'') FROM cur WHERE cur_namespace=0 AND cur_is_redirect=0 AND (cur_text LIKE "%<BR%" OR cur_text LIKE "%<br%") AND cur_text NOT LIKE "%<table%<BR%</table%" AND cur_text NOT LIKE "%<TABLE%<BR%</TABLE%" AND cur_text NOT LIKE "%<table%<br%</table%" AND cur_text NOT LIKE "%<TABLE%<br%</TABLE%" AND cur_text NOT LIKE "%{|%<BR%|}%" AND cur_text NOT LIKE "%{|%<br%|}%" AND cur_text NOT LIKE "%{{%<BR%}}%" AND cur_text NOT LIKE "%{{%<br%}}%" ORDER BY cur_title
```

このクエリは、テキスト内にBRタグを含むページの中で、特定のHTML構造を持つものを除外しながら、タイトルを抽出します。

5. 短いページ



最後に、文字数が256バイト未満のページを取得するためのクエリです。このクエリによって、内容の短いページ一覧を得ることができます。

```sql
SELECT CONCAT('* ',cur_title,' (',LENGTH(cur_text),' byte)') FROM cur WHERE cur_namespace=0 AND cur_is_redirect=0 AND cur_text NOT LIKE "%aimai%" AND cur_text NOT LIKE "%sakujo%" AND cur_text NOT LIKE "%copyrights%" AND cur_text NOT LIKE "%delete%" AND LENGTH(cur_text) < 256 ORDER BY LENGTH(cur_text)
```

このクエリは、リダイレクトされていないページの中で、指定された条件に合う短いコンテンツを持つページタイトルと長さを表示します。

  • ---

以上のように、いくつかのSQLクエリを利用して、データベースから特定の条件を満たすページを効率的に抽出することができます。これらのクエリを使用することにより、必要な情報をスムーズに取得できるでしょう。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。