2012-04-08 7 views
2

ich eine SQL-Abfrage haben, die wie die wie mehrere Namen in einer einzigen Abfrage wählen

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

ist, aber es nicht funktioniert ist, was ich tun möchte, ist die Person zu erhalten, dessen Name „Ali“ und " veli "aber wenn" ali "nicht existiert und" veli "existiert, sollten die existierenden zurückgegeben werden. Wie kann ich das tun? Es ist eine einfache Abfrage, aber ich bin verwirrt.

+0

wo etwas = "etwas" oder etwas = "etwas anderes"? –

+0

uname kann nicht "ali" und "veli" gleichzeitig sein – Dion

Antwort

3

Name kann nicht gleichzeitig Ali und Veli sein. Was Sie tun möchten, ist es, Benutzern zu bekommen, wo Name entweder ali oder veli ist, würde die Abfrage wie folgt aussehen:

select * from users where (uname="ali" or uname="veli") 
+1

wähle * von Nutzern mit Alter = 12 und (uname = "ali" oder uname = "veli") ist das korrekt? – EmreAltun

6

Try this:

SELECT * 
FROM users 
WHERE uname IN ("ali", "veli") 
4

Sie können OR-Klausel oder IN-Klausel in Sie SQL verwenden.

Ex:

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

(oder)

SELECT * FROM users WHERE uname IN ('ali','veli'); 
2

Wenn Sie sowohl die Bedingung müssen zufrieden sein dann verwenden:
select * from users where uname="ali" and uname="veli"

Wenn Sie Datensätze möchten, wo entweder Bedingung ist erfüllt Verwendung:
select * from users where uname="ali" or uname="veli"

Ich hoffe, du hast es ..!

1

Sie müssen die richtige Logik für die where-Klausel angeben. Momentan fragen Sie nach dem Datensatz, bei dem der Eintrag uname sowohl 'ali' als auch 'veli' ist, da jede Zeile nur einen Eintrag für uname hat, was nichts zurückgibt. Die richtige Logik für diese Abfrage ist 'ODER', da sie Ihrer SQL-Engine anweist, alle Zeilen zu finden, in denen uname = 'ali' ODER 'veli' steht. Ihre Abfrage wird am Ende wie folgt aussehen:

SELECT * FROM users WHERE uname='ali' OR uname='veli'; 
Verwandte Themen