Like vorkommen Zählen

domobran

Neuer Benutzer
Beiträge
1
Hallo liebe Community ich habe folgendes Problem

Ausgangslage:

Code:
SELECT navigation.id_navi, navigation.id_navi, navigation.menukey, navigation.title FROM navigation AS navigation LEFT JOIN navigation_content ON navigation.id_navi = navigation_content.id_navi LEFT JOIN contentbox ON navigation_content.id_contentbox = contentbox.id_contentbox LEFT JOIN leftbox ON navigation_content.id_leftbox = leftbox.id_leftbox LEFT JOIN rightbox ON navigation_content.id_rightbox = rightbox.id_rightbox LEFT JOIN footerbox ON navigation_content.id_footerbox = footerbox.id_footerbox WHERE navigation.id_language=1 AND (contentbox.wysiwyg_contentbox LIKE '%Lorem%' OR leftbox.wysiwyg_leftbox LIKE '%Lorem%' OR rightbox.wysiwyg_rightbox LIKE '%Lorem%' OR footerbox.wysiwyg_footerbox LIKE '%Lorem%')

an sich funktioniert das wunderbar es schaut wo sich uberall der searchstring in dem fall Lorem befinden könnte. nun würde ich aber gerne in jeder LIKE abfrage zählen wie of "Lorem" in den einzelnen Spalten gefunden wurde und das ganze als summe zusammenfassen zb spalte im select:

foundcontentbox = 3 foundleftbox = 2 foundrightbox = 1 maxfound = 6

ist das überhaupt möglich?

ich bedanke mich im vorraus für die hilfe ^^
 
Werbung:
H

an sich funktioniert das wunderbar es schaut wo sich uberall der searchstring in dem fall Lorem befinden könnte. nun würde ich aber gerne in jeder LIKE abfrage zählen wie of "Lorem" in den einzelnen Spalten gefunden wurde und das ganze als summe zusammenfassen zb spalte im select:

foundcontentbox = 3 foundleftbox = 2 foundrightbox = 1 maxfound = 6

ist das überhaupt möglich?

Ja, via sum(case when spalte1 = ... then 1 else 0 end ) as ..., sum(case when spalte2 ...
 
Werbung:
Ich hätte auch noch ne Idee (ist jetzt MSSQL aber das wird MySQL auch können):
Code:
SELECT    ( len(spalte) - len(replace(spalte,'suchtext',''))) / len('suchtext')
FROM    tabelle
Wenn ich jetzt mehrere Spalten durchsuchen will dann kann ich das einzeln tun oder sie vorher verketten.
 
Zurück
Oben