Mysql - jeden 3. Wert ansprechen

Und warum darfst du nur bei einer Quelle ä durch ae ersetzen? dürfen die Daten dier anderen Quelle ä behalten oder werden sie schon mit ae geliefert?
Wenn sie schom mit ae geliefert werden, ist es kein Problem den replace() nochmals darüber laufe zu lassen.
 
oder werden sie schon mit ae geliefert?

Nein, leider nicht.

Ein Beispiel.

Tabelle - Content
beinhaltet:

dass der die eine dass zum anderen dass

Jetzt soll daraus, dass letzte "dass" ersetzt werden aber nur weil es das 3. "dass" ist.

Wieso das so gemacht werden soll kann ich dir leider nicht sagen, denn das weiß ich selbst nicht.
 
Bin mir jetzt nicht sicher ob es was hilft, aber zumindest funktioniert es (glaub ich):

PHP:
<?php
$neu = "";

$text = "das Haus das keine Fenster hat ist dunkel, weil das licht nicht reinkommt und das ist ganz sch&ouml;n bl&ouml;d!";

$anzahl = substr_count($text, "das");

if ($anzahl >= 3) {
	$pos = preg_split("/das/", $text);

	for ($a = 1; $a < count($pos); $a++) {
		if ($neu == "") {
			$neu = "das " .trim($pos[$a]);
		} elseif ($neu != "" and ($a % 3) <> 0) {
			$neu = $neu ." das " .trim($pos[$a]);
		} elseif ($neu != "" and ($a % 3) == 0) {
		 	$neu = $neu ." da&szlig; " .trim($pos[$a]);
		}
	}
}
echo $neu;
?>

Ergibt dann:

Code:
das Haus das keine Fenster hat ist dunkel, weil daß licht nicht reinkommt und das ist ganz schön blöd!
 
ich gleube er meint mit 'dass' eweils ein Eintrag in der Tabelle....
Ansonsten haben wir einen Thread lan aneinander vorbei geschrieben *g*

Nachtrag:
Falls du doch recht hast - es hat mich gewurmt ob man das wirklich nicht mit MySQL lösen kann.... man kann. Obs performant ist, ist ein anderes Thema
Hab mal diesen Versuch gemacht
SQL:
SELECT 
	CONCAT(
		@s := SUBSTRING_INDEX(str, from_str, count), 
		to_str, 
		SUBSTRING(str, LENGTH(from_str) + LENGTH(@s) +1 )
	) AS new_string
FROM
	(SELECT 
		'dass der die eine dass zum anderen dass hallo' AS str,
		'dass' AS from_str,
		'XX' AS to_str,
		3 AS count
	) AS vars
Ergibt
'dass der die eine dass zum anderen XX hallo'
 
Zuletzt bearbeitet von einem Moderator:
Schon klar das er es "in einer Datenbank" will. Ich dachte nur das er die Datenbank/Tabelle in einer Schleife durchlaufen könnte und den Feldinhalt mit dieser Funktion ändern könnte !
 
Ich habe zuerst verstanden, das jedes 'dass' ein Eintrg ist. Also nicht der Satz.

tabelle
rownum | value
1 | dass
2 | dass andere
3 | dass erste gesuchte !
4 | dass interessiert nicht
5 | dass auch nicht
6 | dass will er wieder haben !
7 | dass geht so weiter
 
Mein 1. beitrag war falsch.
Es solle nicht in jeder 3. Zeile ersetzt werden sondern schon jeder 3. Wert.

Also ich habe einen Satz wo 6 mal ä darin vorkommt, dann soll es bei dem 3 und 6 Wert den
Umlaut ersetzen aber bei den anderen nicht.

Das war der zweite Beitrag zu diesem Thema und nach dem was er/sie da schreibt habe ich es genau anders verstanden. Nämlich das in einem (Daten-)Satz das Wort "das" oder der Buchstabe "ä" mehrmals vorkommt und nur bei jedem dritten vorkommen etwas geändert werden soll !!?

Mal sehen was passiert.

Gruß Thomas
 
Huch.....

Dann doch das *g*
SQL:
SELECT
    CONCAT(
        @s := SUBSTRING_INDEX(str, from_str, count),
        to_str,
        SUBSTRING(str, LENGTH(from_str) + LENGTH(@s) +1 )
    ) AS new_string
FROM
    (SELECT
        'dass der die eine dass zum anderen dass hallo' AS str,
        'dass' AS from_str,
        'XX' AS to_str,
        3 AS count
    ) AS vars
 
Zuletzt bearbeitet von einem Moderator:
:confused: :confused: :confused: :confused: :confused: :confused:

Ich weiß das du gut bist, aber das hier ist jetzt wirklich gemein ! ! ! ! Wo holst du das nur immer her ?
 
Zurück