Alle Spalten einer Tabelle durchsuchen

Alle Spalten einer Tabelle durchsuchen

am 01.05.2006 13:58:13 von jonas

Hallo,

ich will eine Tabelle von angemeldeten Benutzern nach einem Suchwort durchsuchen. Dabei hat die
Tabelle mehrere Spalten wie vorname, nachname, plz, etc..
Jetzt will ich aber nicht solch ein Query schreiben wie:
SELECT * FROM users WHERE vorname LIKE '%suchtext%' OR nachname LIKE '%suchtext%' ..
sondern lieber alle spalten vorher zu einer spalte verbinden und dann in etwa soetwas machen:
SELECT * FROM users WHERE (vorname + nachname + plz) LIKE '%suchtext%' ...

Das funktioniert so aber nicht, da vorname + nachname = 0 ergibt.

Kann mir da jemand helfen?

Danke,
Jonas

Re: Alle Spalten einer Tabelle durchsuchen

am 01.05.2006 14:20:01 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: Alle Spalten einer Tabelle durchsuchen

am 01.05.2006 15:04:16 von Johannes Vogel

Hi Jonas

Jonas wrote:
> ich will eine Tabelle von angemeldeten Benutzern nach einem Suchwort
> durchsuchen. Dabei hat die Tabelle mehrere Spalten wie vorname,
> nachname, plz, etc..
> Jetzt will ich aber nicht solch ein Query schreiben wie:
> SELECT * FROM users WHERE vorname LIKE '%suchtext%' OR nachname LIKE
> '%suchtext%' ..
> sondern lieber alle spalten vorher zu einer spalte verbinden und dann in
> etwa soetwas machen:
> SELECT * FROM users WHERE (vorname + nachname + plz) LIKE '%suchtext%' ...
> Das funktioniert so aber nicht, da vorname + nachname = 0 ergibt.
> Kann mir da jemand helfen?

Also MySQL verbindet Textattribute mittels concat().
select * from users
where concat(vorname,nachname,plz) like '%suchtext%';

Das würde dann aber bedeuten, dass der Hans Wurst auch mittels "answu"
gefunden werden kann. Vielleicht magst du deshalb ein Trennzeichen
zwischenschalten.

Alternativ könntest du im Manual unter Volltextsuche nachschlagen und
diese so verwenden, wie es das DBS dir empfiehlt.

12.7. Full-Text Search Functions
http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

Damit habe ich dir auch gerade den Link zum Manual gegeben. Ich schlage
vor, dass du dich damit noch etwas mehr befasst...

HTH, Johannes