Hilfe bei select

christianruby

Benutzer
Beiträge
6
Hallo zusammen!

Sorry, habe keine andere Idee für einen passenden Titel gehabt.
Nun zu meiner Frage:
Ich habe die beiden folgenden Tabellen:
Kunden:
Feld Stadtteil, Wert= Charlottenburg, Spandau, Rudow

Objekte:
Feld Stadtteil, Wert= Spandau

Wenn ich für ein Objekt einen Kunden suchen möchte, is es kein problem, da funktioniert es mit einem Like (where Stadtteil.kunden like %stadtteil.objekte%)

aber anders herum, wenn ich für einen Kunden ein Objekt suche, habe ich keine ahnung wie ich das realisiere, da "Charlottenburg, Spandau, Rudow" kein Bestandteil von "Spandau" ist.
Kann mir da vielleicht jemand helfen?

Wäre echt super!

Viele Grüße,

Christian
 
Werbung:

christianruby

Benutzer
Beiträge
6
ich habs gerade mal mit folgendem statement probier, ergebnis ist nix.

select * from Objekte WHERE 'Charlottenburg, Spandau, Rudow' LIKE stadtteil

und mit
select * from Objekte WHERE 'Charlottenburg, Spandau, Rudow' LIKE %stadtteil%

bekomme ich ne fehlermeldung: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%stadtteil% LIMIT 0, 30' at line 1
 

christianruby

Benutzer
Beiträge
6
ein weiteres problem, wie kann ich zum beispiel
select * from kunden where stadtteil = 'Spandau' or stadtteil="" and typ='Wohnung'

so implementieren, dass er mir alle einträge mit Typ=Wohnung und stadtteil=Spandau oder "" ausgibt?
momentan würde er mir alle einträge mit Typ=Wohnung und stadtteil=Spandau und alle einträge bei denen stadtteil = "" ist, egal was für ein typ eingetragen ist.
 

Walter

Administrator
Teammitglied
Beiträge
443
Wie wärs mit genau dem, was Dir die Fehlermeldung empfiehlt?

Und die Lösung hat Dir ukulele eigentlich schon oben hingeschrieben:
select * from objekte where feldname LIKE '%wert den ich abfrgen möchte%', in Deinem Fall also select * from objekte where stadtteil LIKE '%Spandau%',
Wobei Du da zusätzlich noch auf Grossschreibung achten musst :)

Aber aus Deiner Abfrage schliesse ich, dass Du gar keinen LIKE haben möchtest (Wozu dient eigentlich LIKE?) sondern auf eine Werteliste abfragen möchtest. Such mal in meinem Link nach dem Stichwort IN.
 

christianruby

Benutzer
Beiträge
6
hallo walter!
Ich glaube, hier liegt ein Missverständnis vor.
Wenn du meinen ersten Beitrag gelesen hättest, wüsstest du dass " select * from objekte where feldname LIKE '%wert den ich abfrgen möchte%' " in meinem Fall nicht dass ist was ich brauche!
und wenn du ukulel´s Beitrag richtig gelesen hättest, hättest du gesehen dass er mir "WHERE Stadtteil.kunden LIKE %stadtteil.objekte%" vorschlug.

Dein vorschlag " select * from objekte where stadtteil LIKE '%Spandau%'," ist nicht die lösung meines problems.
denn ich habe folgende ausgangssituation:
Tabelle Kunden:
Feld Stadtteil, Wert= Charlottenburg, Spandau, Rudow

Tabelle Objekte:
Feld Stadtteil, Wert= Spandau

ich möchte nun für einen Kunden die passenden Objekte suchen. und mit deinem vorgeschlagenen Statement wäre das Ergebnis Null.
denn übersetzt wäre das statement dann " select * from objekte where stadtteil LIKE '%Charlottenburg, Spandau, Rudow%' "

Ich habe dies mittlerweile mit MATCH AGAINST gelöst.

Jedoch bleibt dann noch mein zweites Problem.

wie kann ich zum beispiel
select * from kunden where stadtteil = 'Spandau' or stadtteil='' and typ='Wohnung'

so implementieren, dass er mir alle einträge mit Typ=Wohnung und stadtteil=Spandau und alle einträge mit Typ=Wohnung und stadtteil='' ausgibt?
momentan würde er mir alle einträge mit Typ=Wohnung und stadtteil=Spandau und alle einträge bei denen stadtteil = "" ist, egal was für ein typ eingetragen ist.
 

christianruby

Benutzer
Beiträge
6
hat sich erledigt!
die lösung is simple und lag wohl an dem zulangen drauf starren, dass ich nich selbst drauf kam. 10 minuten päusschen und schon hatte ichs.

select * from Kunden where (MATCH(stadtteil) AGAINST('Spandau' IN BOOLEAN MODE) or stadtteil='') and Objektart='Wohnung'
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.644
Sehr gut. Aber nochmal, ich komm zwar mit MSSQL aber das hier müsste gehen:
und mit
select * from Objekte WHERE 'Charlottenburg, Spandau, Rudow' LIKE %stadtteil%

bekomme ich ne fehlermeldung: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%stadtteil% LIMIT 0, 30' at line 1
Wenn du LIKE '%' + stadtteil + '%' machst.
 
Oben