Suchen in Kommaseparierten DB-Feldern

Hier ein kleines SQL-Statement zum Suchen in kommaseparierten Inhalten in einem Datenbankfeld

SELECT * FROM db_tabelle WHERE kommaseparierte_db_feld REGEXP ‘^(.*,)*suchwert(,.*)*’;

Interessant ist in diesem Zusammenhang auch die MySQL-Funktion FIND_IN_SET() (Link).

Aber Vorsicht: für beide Wege brauchts mindestens MySQL 5.x

Hat irgendjemand Erfahrungen, welche Methode die performantere ist?

Veröffentlicht unter Allgemein, TYPO3 Technik
3 Kommentare auf “Suchen in Kommaseparierten DB-Feldern
  1. Michael sagt:

    Ich nehme immer den Klassiker:

    SELECT * FROM tabelle WHERE CONCAT(‘,’,feld,’,') LIKE ‘%,99,%’.
    Aber deine Variante hört sich prima an!

  2. Der erste Ansatz ist eher ungeschickt, da bei einer Suche nach “Test” auch “Test 2″ gefunden wird.

1 Pings/Trackbacks für "Suchen in Kommaseparierten DB-Feldern"
  1. http://www.armchairxplorer.com...

    TYPO3 Blog – für TYPO3 Entwickler von TYPO3 Experten » Suchen in Kommaseparierten DB-Feldern…

Add Comment Register



Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>