2017-01-13 17 views
-1

Wie kann ich diesen Fall abfragen:MySQL - MariaDB - Abfrage zählen Wörter in Spalte

Machine | Monitors 
---------------------------------------------------------------------------<br> 
Computer 1 | Computer Name: Dell,Model: a - Computer Name: Dell,Model: d<br> 
---------------------------------------------------------------------------<br> 
Computer 2 | Computer Name: Dell,Model: abcd - Computer Name: Lenovo,Model: abcd<br> 
---------------------------------------------------------------------------<br> 
Computer 3 | Computer Name: SAMSUNG,Model: abcd 

Ich brauche die Summe der Zeichenfolge „Computername“ zu konvertieren, wenn es angezeigt wird, und die Anzahl der es zu bekommen, aber Ich weiß nicht wie!

dieses Ergebnis erhalten:

Machine | Monitors 
-------------------- 
Computer 1 | 2 
-------------------- 
Computer 2 | 2 
-------------------- 
Computer 3 | 1 
+2

ich denke, vor allem müssen Sie Ihre Tabellenarchitektur aktualisieren –

+0

Haben Sie etwas versucht? –

+0

Diese Tabelle stammt von einer Software namens KACE, die ich brauchte, um eine benutzerdefinierte Inventarregel zu erstellen, um diese Daten zu holen, und jetzt möchte ich die Daten filtern. –

Antwort

2

Sie können diese Manipulationen mit einigen Zeichenfolge tun:

select machine, 
     (length(monitors) - length(replace(monitors, 'Computer Name:', '')))/length('Computer Name:') 
from t; 

Sie sollte überdenken, wie Sie diese Daten zu speichern. Manchmal stecken wir bei schlechten Entscheidungen anderer fest. Aber wenn Sie eine Wahl haben, sollten Sie eine weitere Tabelle mit einer Zeile pro "Maschine" und "Computername" haben.

+0

Es gab nur 0 als Zahlen für die Anzahl der Monitore! –

+0

Ich habe es! Vielen Dank! –