4

我有一个类似的 sql 查询

 select * 
 from users 
 where uname="ali" and uname="veli"

但是我想做的是得到名字叫“ali”和“veli”的人,但是如果“ali”不存在而“veli”存在,则应该返回存在的人。我怎样才能做到这一点。这很容易查询,但我很困惑。

4

6 回答 6

6

试试这个:

 SELECT * 
 FROM users 
 WHERE uname IN ("ali", "veli")
于 2012-04-08T16:20:21.090 回答
5

你可以做:

select * from users where uname in ("ali", "veli")

按照:

http://www.w3schools.com/sql/sql_in.asp

于 2012-04-08T16:21:30.910 回答
5

您可以在 sql 中使用 OR 子句或 IN 子句。

前任:

SELECT * FROM users WHERE uname='ali' OR uname='veli'

(或者)

SELECT * FROM users WHERE uname IN ('ali','veli');
于 2012-04-08T16:21:57.970 回答
3

name 不能同时是 ali 和 veli。您要做的是获取名称为 ali 或 veli 的用户,查询将如下所示:

select * from users where (uname="ali" or uname="veli")
于 2012-04-08T16:19:32.103 回答
2

如果您需要同时满足两个条件,请使用:
select * from users where uname="ali" and uname="veli"

如果您想要满足任一条件的记录,请使用:
select * from users where uname="ali" or uname="veli"

希望你明白了..!

于 2012-04-08T16:22:46.787 回答
1

您需要为 where 子句提供正确的逻辑。目前,您正在询问条目 uname 既是“ali”又是“veli”的记录,因为每一行只有一个 uname 条目,这将不会返回任何内容。此查询的正确逻辑是“OR”,因为它告诉您的 SQL 引擎查找 uname = 'ali' OR 'veli' 的所有行。您的查询最终将如下所示:

SELECT * FROM users WHERE uname='ali' OR uname='veli';
于 2012-04-08T16:36:44.770 回答