Gehe zu deutscher Webseite

ViaThinkSoft CodeLib

This article is in:
CodeLibProgramming aidsMySQL

Gegeben sei die Tabelle "beispiel" mit folgender Struktur:

+=====+======================+
| id  | value                |
+=====+======================+
| 1   | cd ab AB cd de cd    |
| 2   | AB ab AB ab cd de    |
| 3   | cd                   |
+=====+======================+

Wir möchten nun zu jeder Zeile herausfinden, wie oft der String "Ab" (ohne Berücksichtigung de Groß- und Kleinschreibung) in der Spalte "value" vorkommt.
Dazu verwenden wir folgende Abfrage:

SELECT id, value, ((CHAR_LENGTH(value) - CHAR_LENGTH(REPLACE(LOWER(value) , LOWER('Ab'), ''))) / CHAR_LENGTH('Ab')) AS cnt FROM beispiel ORDER BY cnt DESC

Resultat:

+=====+======================+======+
| id  | value                | cnt  |
+=====+======================+======+
| 2   | AB ab AB ab cd de    | 4    |
| 1   | cd ab AB cd de cd    | 2    |
| 3   | cd                   | 0    |
+=====+======================+======+

In der Ergebnisspalte "cnt" steht nun pro Tabellenzeile, wie oft der String "Ab" im "value"-Feld vorkommt.
Victor-Phillip Negoescu
ViaThinkSoft Gründer