Ich habe eine Tabelle mit einer Spalte 'search_text' Typ text
.Entfernen Sie doppelte Werte in einer Zelle MySQL
In diesem Bereich habe ich Werte:
1. 'MyBook MyBook PDF PDF',
2. 'Example 1 Example 2 Example 3'
3. 'John Snow John Snow'
ich verschiedene sauber diesen Bereichen möchten.
Erwartetes Ergebnis:
1. 'MyBook PDF',
2. 'Example 1 2 3'
3. 'John Snow'
Der Ansatz, den ich mit aufkam geht wie folgt: das Feld für jeden Datensatz gelesen, spaltete es durch Leerzeichen (‘‚), wobei jeder Text in Array setzen, tun array_unique
in PHP, dann setzen Sie das Array zurück auf String mit join
in PHP.
Die Sache ist, das ist eine PHP-basierte Lösung, ich hätte gerne eine MySQL-Lösung dafür. Ich habe über 180.000 Datensätze, die ich putzen muss, ich weiß nicht, welche Auswirkungen dies auf PHP haben würde. Remove duplicate values in a cell SQL Server
Hilfe sehr geschätzt:
Ich habe eine Lösung für MS SQL gefunden.
SQL meiner Testdaten:
CREATE TABLE IF NOT EXISTS `test` (
`id` int(10) unsigned NOT NULL,
`search_text` text COLLATE utf8_unicode_ci NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
INSERT INTO `test` (`id`, `search_text`) VALUES
(1, 'MyBook MyBook PDF PDF'),
(2, 'Example 1 Example 2 Example 3'),
(3, 'John Snow John Snow'),
(4, 'test test test test formula test test test formula test test test formula test test test formula test test test formula test test test formula '),
(5, '');
ALTER TABLE `test`
ADD PRIMARY KEY (`id`);
ALTER TABLE `test`
MODIFY `id` int(10) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=6;
schließen, aber jetzt ziemlich, was ich suche. Dies erzeugt Zeilen mit ALLEN Einträgen in ALLEN Zeilen. – Rumplin
Funktioniert auch nicht, wenn es mehr Werte als 4 gibt (z. B. "Test Test Test Test Formel Test Test Test"). – Rumplin