2012-04-10 17 views
2

I String Separatoren aus einer MySQL-Abfrage zählen möchten, bedeuten, wenn der Wert Feld ist wie: -Mysql Komma Zahl von Feldwert

1,2,3,4,5 

als String Komma getrennt wird, um die Trennzahl 4 sein .

eine Idee, dann teilen Sie bitte

DANK,

+0

Scheint so, als ob Sie überprüfen müssen, ob es eine Funktion zur Zeichenfolgenbearbeitung gibt, die eine Zeichenfolge durch ein Trennzeichen aufteilt und dann die Anzahl der Teile zählt, die sich ergeben. Sie sollten n + 1 Teile für n Kommas bekommen. –

+0

Warum speichern Sie getrennte Strings als Werte? Dies verkompliziert und reduziert nur die Datenbankleistung. Was versuchst du genau zu machen? – giorashc

+0

giorashc - wir müssen nicht immer die Daten auswählen, mit denen wir arbeiten müssen. Warum fragst du nicht etwas, das dir helfen könnte, seine Frage zu beantworten? –

Antwort

2

Sie versuchen können, ohne Kommata die Länge der Zeichenfolge und minus die Länge der Zeichenfolge zu zählen wie folgt:

LENGTH('1,2,3,4,5') - LENGTH(REPLACE('1,2,3,4,5', ',', '')) 
1
select length('1,2,3,4,5') - length(replace('1,2,3,4,5', ',', '')) 
1

schlage ich die folgende Konstruktion:

Table name : USER_HOBBIES 

| USER_ID | HOBBY_ID | 
    1   1 
    1   2 
    1   3 
    2   2 
    2   4 
    2   5 

Und jetzt können Sie leicht Benutzer Hobbys für einen bestimmten Benutzer zählen:

SELECT count(*) FROM USER_HOBBIES WHERE USER_ID = <user-id> 

obwohl es eine andere erfordert Tabelle ist es viel klarer und auf einer langen Liste von Hobbies wird dies viel schneller sein als die Verwendung einer Funktion zum Bearbeiten von Strings.

+0

Danke für Ihren Vorschlag ... –

Verwandte Themen