2011-02-02 6 views
1

フィールドの最初の文字がアルファではないという事実に基づいて行を選択するクエリを作成しようとしています。selectフィールドwhereフィールドregexpグループ

例、私はテーブルに次のデータを持って言うことができます:私は選択して、これを必要

id | band | song 
1 | 3 days grace | song name 
2 | avenged sevenfold | song name 
3 | as i lay dying | song name 
4 | 98 mute | song name 
5 | 98 mute | another song name 

3 days grace (and show a count of 1) 
98 mute (and show a count of 2) 

をここでは私のコードです:

select band, count(*) as count 
from `songs` 
where `band` REGEXP '^[^[:alpha:]]' 
group by `band` 
order by `band` asc 

この全く働いていません。

+1

構文が正しく、クエリが機能している必要があります。 MySQLのバージョンは何ですか?私達にあなたが持っている結果を示してください... –

答えて

0

私のデータベースであなたのクエリを試してみましたが、うまくいきましたので、問題はREGEXPではなく他のものです。タイトルと記事は私のデータベースの列です。 AS COUNTが `にカプセル化されていない状態でどのように動作するか興味深い。

mysql> select Title, count(*) as count 
    -> from `Articles` 
    -> where `Title` REGEXP '^[^[:alpha:]]' 
    -> group by `Title` 
    -> order by `Title` asc; 

+--------------+-------+ 
| Title  | count | 
+--------------+-------+ 
| 3 days grace |  1 | 
| 98 mute  |  2 | 
+--------------+-------+ 
+0

あなたはそれが実際の行の値自体に間違っていたのは間違いです。私はバンドスラッグフィールドを使用するように変更し、それは動作します。 – scarhand

0

クエリの最初の部分でフィールド名Titlecountをカプセル化してみます。 stephanie gratzerでは動作するように見えますが、設定ではフィールド名がSQLキーワードである可能性があります。それをカプセル化する/可能にする/この(潜在的な)問題を解決する。

関連する問題