2014-02-25 154 views
1

我想弄清楚我需要从我的用户表中获取记录的SQL查询。SQL查询显示记录

"SELECT * FROM users WHERE level!='4'" 

4级用户默认为“COMPLETED”,因此不显示。 但是,如果活动值小于5,我确实希望显示已完成的用户。 任何活动值为5的用户都是“绿色”,并且不需要我的注意。

知道我的运气,这是一个非常简单的答案,但这是一个漫长的一天,我的头炸了。

+4

发表您的表结构和一些样本数据 –

+1

是MySQL或SQL服务器? –

+0

对于大多数数据库,在平等中用<>表示。您可以使用!=但它必须是数据库特定的。 –

回答

3

你可以像这样:

SELECT * 
FROM users 
WHERE level <> '4' 
OR (level = '4' and Activity < 5); 

我已经关掉不等号 - <>is more portable

+1

对模式的猜测! –

2

这应该解决您的问题

SELECT * FROM用户WHERE级= '4'OR(活动<'5'AND level = '4')

0

简单的方法,像以下为:

SELECT * FROM users 
LIMIT 4; 
+0

这个答案是不够的 –

+0

@ Craigy Craigo,我不明白,为什么你问的答案不够。 – jmail

+0

@Craigy Craigo,如果你有5行的表,它应该显示的限制是4. – jmail