2017-06-23 4 views
0
select town_id,name from `soft_uni`.towns 
where name like 'b%' or 'm%' or 'k%' or 'e%' 

Ich möchte alle Namen finden, die mit b oder m oder k oder E zu starten, aber ich mag, dass es nur für die Städte arbeitet, die mit b beginnenmsql wie Funktion logische oder

+0

N beginnen Für LIKE existiert leider nichts. Für equals können Sie 'WHERE IN ('b', 'm', 'k', 'e')' machen, aber diese Art von Syntax funktioniert nicht für LIKE. Sie müssen 'field LIKE value' explizit für jede Möglichkeit angeben. – Devon

Antwort

5

Sie müssen hinzufügen name like bevor Sie eine Bedingung in dieser Abfrage

select town_id,name from `soft_uni`.towns 
where name like 'b%' or name like 'm%' or name like 'k%' 
     or name like 'e%' 

eine andere Lösung wäre die Verwendung REGEXP

select town_id, name from `soft_uni`.towns 
where name REGEXP '^(b|m|k|e)'; 
+0

es funktioniert, aber gibt es nicht einen shoter Weg, es zu tippen, wie eine logische oder innerhalb der '' dieses Anführungszeichen, etwas wie ''% b |% m'', dh beginnt mit b oder beginnt mit m –

+0

Nein, da ist es nicht. – terales

+1

schau dir meine bearbeitete Antwort an – mic4ael