IN - Mit Platzhalter?
bal
- datenbank
Hallo, kann man wenn man in der WHERE Abfrage ein IN verwendet keine Platzhalter verwenden? Geht das bei LIKE?
Also wenn ich beispielsweise sowas abfragen will und nur die ersten und letzten zwei stellen der id beachtet werden sollen. Wie mach ich dass am besten? Weil so funktionierts nicht:
SELECT name FROM tabelle WHERE id IN ('12%23', '23%31')
Hello,
SELECT name FROM tabelle WHERE id IN ('12%23', '23%31')
so definitiv nicht. IN unterstützt nur eine feste Liste mit Werten, auf die geprüft wird. Was du machen kannst, sofern deine Datenbank das mitspielt, ist ein Subselect, das entsprechende Ergebnisse bringt:
SELECT name
FROM tabelle
WHERE id IN (
SELECT id FROM tabelle WHERE id LIKE '12%23' OR id LIKE '23%31'
)
MfG
Rouven
Hi,
SELECT name FROM tabelle WHERE id IN ('12%23', '23%31')
so definitiv nicht. IN unterstützt nur eine feste Liste mit Werten, auf die geprüft wird. Was du machen kannst, sofern deine Datenbank das mitspielt, ist ein Subselect, das entsprechende Ergebnisse bringt:
SELECT name
FROM tabelle
WHERE id IN (
SELECT id FROM tabelle WHERE id LIKE '12%23' OR id LIKE '23%31'
)
Wenn ich das richtig sehe ist das das gleiche wie:
SELECT name
FROM tabelle
WHERE id LIKE '12%23' OR id LIKE '23%31';
Das Subselect ist also in diesem Besipiel ueberfluessig.
mfG,
steckl
Hello,
Das Subselect ist also in diesem Besipiel ueberfluessig.
für das vorliegende Beispiel ist das korrekt. Eigentlich eine gute Frage, warum das IN da überhaupt ist...
MfG
Rouven