2017-02-14 11 views
1

Ich habe versucht, doppelte Einträge in meiner SQL-Tabelle zu finden, die ich ziemlich leicht mit der unten stehenden Abfrage erreicht habe.Ähnliche Einträge in mySql finden

SELECT * FROM sds_bank_phrases INNER JOIN (Select bank_statement FROM sds_bank_phrases GROUP BY bank_statement HAVING COUNT(bank_statement) > 1) dup ON sds_bank_phrases.bank_statement = dup.bank_statement; 
  • Nun, was ich zu suchen, ich versuche, ist die Einträge, die gleichen Daten haben, aber ein Punkt zusätzlich hinzugefügt.
  • Zum Beispiel haben Sie bank_id 1 mit bank_statement Ja
  • bank_id 2 mit bank_statement Ja.
  • bank_id 3 mit Ja, Es wurde bearbeitet.
  • also aus dem obigen Beispiel möchte ich nur die ersten beiden Einträge extrahieren, weil sie die schließen einmal sind. nur Punkt ist der Unterschied.
  • Ich habe eine 20000 bank_statements und wie extrahiere ich solche Einträge?

DB-Tabelle

enter image description here

  • In dem obigen Bild, das wir die Daten sehen können, hat nicht bekannt doppelte Einträge.
  • Die Abfrage gebucht kann alle Einträge mit ID 1274, 1353,1418,2455,3026 finden, aber nicht 5637 finden.
  • Da gibt es einen Punkt in diesem Eintrag. Das gilt nicht als Duplikat.
  • Erwartete Ergebnis wäre das nicht so gut zu ziehen.
  • Es sollte die ban_statement mit id mit 2787 ignorieren, weil die bank_statement anders ist.
+0

Update Sie mit einer richtigen Datenprobe und dem erwarteten Ergebnis in Frage – scaisEdge

+0

Ich habe sie @scaisEdge hinzugefügt –

+0

besser erklären wollen Sie als Duplikat zählen auch die Zeile mit dem Punkt (dot) am Ende? – scaisEdge

Antwort

1

Sie könnten ein TRIM verwenden (TRAILING '.' FROM your_column);

SELECT * 
FROM sds_bank_phrases 
INNER JOIN (Select TRIM(TRAILING '.' FROM bank_statement) as clean_bank_statement 
FROM sds_bank_phrases GROUP BY bank_statement HAVING COUNT(TRIM(TRAILING '.' FROM bank_statement)) > 1) dup 
    ON TRIM(TRAILING '.' FROM sds_bank_phrases.bank_statement) = dup.clean_bank_statement; 
+0

Nein Ich erhalte eine unerwartete TEXT_STRING, wenn ich die TRIM (TRAILINF '.' FROM Bank_Anweisung) –

+0

TRIM (Trailing) es sollte .. typ Fehler –

+0

Ja .. TRAILING ... Tippfehler .. Antwort aktualisiert. – scaisEdge