Ich versuche, eine einzelne Abfrage zu schreiben, die aus einer Tabelle alle Datensätze extrahiert, die doppelte Einträge mit unterschiedlichen Werten sind. Der Zweck besteht darin, einem Benutzer zu ermöglichen, zu markieren, welcher Datensatz in einem Satz die primäre Beobachtung ist.Wie Sie Datensätze mit doppelten Indizes in der Datenbank auflisten
Tabellenfelder:
idTable (Index), idPlant, idParameter, Value (tinytext), IsPrimary (Yes/No, default No)
Ich möchte in der Lage sein, nur die Datensätze anzuzeigen, die identisch idPlant
haben und idParameter
, wo der Wert unterschiedlich ist, aber ich möchte die tatsächlichen Datensätze aufzulisten nicht die Anzahl der Wiederholungen (die einfach zu erledigen). Der Benutzer kann dann für jede (idPlant and idParameter)
Gruppe auswählen, welches idTable die primären Daten sind, um die Tabelle zu aktualisieren und IsPrimary auf 'Yes' setzen.
Ich bin mir sicher, dass dies möglich sein muss, aber der einzige Weg, wie ich es sehen kann, ist ein mehrstufiger Prozess der MySQL- und PHP-Verarbeitung.
Ich konnte nicht die Antworten auf die ähnliche Frage erhalten, um zu arbeiten, denke ich, weil ich auf zwei Spalten gruppiere.
Ich habe versucht, die SQL-Geige zu verwenden, aber das konnte auch nicht funktionieren. Also habe ich die Create SQL-Anweisung und einige Beispieldaten
Ich versuche, eine Abfrage erstellen, die den gesamten Datensatz für IDPhenotype = 3,4,5 anzeigen würde (weil einer dieser nicht übereinstimmt) und 7, 8 (wieder, weil man nicht übereinstimmt), aber ignoriert idPhenotype 10,11 weil die PhenotypeValue identisch ist
Tabelle SQL
CREATE TABLE IF NOT EXISTS `phenotype`
( `idPhenotype` int(10) unsigned NOT NULL AUTO_INCREMENT
, `idPhenotypeDef` int(11) DEFAULT NULL
, `idPlant` mediumint(9) NOT NULL, `PhenotypeParameter` tinytext
, `PhenotypeValue` text
, `PhenotypeDescribedBy` tinytext
, `NewestData` enum('Yes','No') NOT NULL DEFAULT 'Yes'
, PRIMARY KEY (`idPhenotype`)
, UNIQUE KEY `idPhenotype_UNIQUE` (`idPhenotype`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=509165 ;
Daten SQL
INSERT INTO `phenotype` (`idPhenotype`, `idPhenotypeDef`, `idPlant`
, `PhenotypeParameter`, `PhenotypeValue`, `PhenotypeDescribedBy`
, `NewestData`) VALUES
(1, 1, 1, 'Front', 'Green', 'Historic Data', 'Yes')
,(2, 1, 2, 'Front', 'Green', 'Historic Data', 'Yes')
,(3, 1, 3, 'Front', 'Green', 'Historic Data', 'Yes')
,(4, 1, 3, 'Front', 'Dark Green', 'Historic Data', 'Yes')
,(5, 1, 3, 'Front', 'Green', 'Historic Data', 'Yes')
,(6, 1, 19, 'Front', 'Green', 'Historic Data', 'Yes')
,(7, 1, 20, 'Front', 'Green', 'Historic Data', 'Yes')
,(8, 1, 20, 'Front', 'Brown', 'Historic Data', 'Yes')
,(9, 1, 205, 'Front', 'Green', 'Historic Data', 'Yes')
,(10, 2, 1, 'Back', 'Green', 'Historic Data', 'Yes')
,(11, 2, 1, 'Back', 'Green', 'Historic Data', 'Yes')
,(12, 2, 12, 'Back', 'Green', 'Historic Data', 'Yes')
,(13, 2, 13, 'Back', 'Green', 'Historic Data', 'Yes')
,(14, 2, 14, 'Back', 'Green', 'Historic Data', 'Yes')
,(15, 2, 15, 'Back', 'Green', 'Historic Data', 'Yes');
http://sqlfiddle.com/#!9/346b4
wäre es möglich, wenn Sie einen [SQLFiddle] (http://sqlfiddle.com) – psycotik
Mögliche machen könnte Duplikat von [Doppelte Datensätze in MySQL finden] (http://stackoverflow.com/questions/854128/find-duplicate-records-in-mysql) –
'Tabellenfelder:' ist eine Art EAV-Tabelle? WIE ist seine Beziehung zu der 'Tabelle SQL'? Warum ist es relevant für die Frage? BTW: Ich denke du willst die Duplikate * even * erkennen, wenn der Wert gleich ist. – wildplasser