我正在尝试编写一个查询,根据字段中第一个字符不是alpha的事实来选择行。
示例,假设我在表格中有以下数据:
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
这根本不起作用。
答案 0 :(得分: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 |
+--------------+-------+
答案 1 :(得分:0)
尝试在查询的第一部分中封装字段名称Title
和count
。虽然它似乎适用于stephanie gratzer,但您的配置可能是一个问题,即您的字段名称是SQL关键字。封装它/可能/解决这个(潜在的)问题。