Meine DB ist ein wenig seltsam und ich fand heraus, dass coin_id
von einigen Produkten hat ein "Leerzeichen" als ihr erster Buchstabe. Also statt "123456" ist es "123456". Ich versuche alle coin_id
zu finden, die mit einem "Leerzeichen" beginnen und dann die Leerzeichen entfernen.Versuchen, alle Feld beginnend mit Platz
Antwort
Keine Notwendigkeit, sie selbst zu finden, schneidet sie nur in einer UPDATE
Abfrage. Verwenden Sie LTRIM
oder nur TRIM
wenn es sollte nicht am Anfang oder Ende Plätze:
UPDATE table_name SET coin_id = LTRIM(coin_id)
Als Dudu Markovitz Punkte aus, vor allem wenn es einige von vielen zu aktualisieren, können Sie sie finden und aktualisieren, um sie für die möglicherweise eine bessere Leistung:
UPDATE table_name SET coin_id = LTRIM(coin_id) WHERE coin_id LIKE ' %'
Oder TRIM
:
UPDATE table_name SET coin_id = TRIM(coin_id)
WHERE coin_id LIKE ' %' OR coin_id LIKE '% '
Dies funktioniert dank – Ron
Obwohl logisch äquivalent, Leistung weise Es ist keine gute Idee, den gesamten Satz zu aktualisieren, wenn Sie nur einen Teil davon aktualisieren müssen. –
Wie wäre es damit? Entfernen ein Zeichen aus den Spalten mit einem Leerzeichen beginnen
UPDATE table
SET coin_id = RIGHT(coin_id,LENGTH(coin_id)-1)
WHERE LEFT(coin_id,1) = ' ';
geschlossen werden, und wenn es mehr als 1 Raum? –
Ersetzen Sie 'RECHT (LÄNGE (coin_id) -1)' mit 'ltrim (coin_id)': D wusste nicht über die integrierte 'ltrim' oder' trim' bis jetzt – Antony
Erstens, warum ist eine ID, die von di besteht gits als String gespeichert? Vielleicht ist der "12345" nicht wirklich ein repräsentativer Wert.
Ich würde vorschlagen, dass Sie verwenden like
:
update t
set coin_id = trim(coin_id)
where coin_id like ' %';
Hinweise:
like ' %'
ermöglicht es dem Optimierer einen Index fürt(coin_id)
zu verwenden.- Die Abfrage verwendet
trim()
. Nach Leerzeichen könnte am Ende auch ein Problem sein. - Wenn der Wert Ziffern ist, dann sollte es als eine Nummer irgendeiner Art gespeichert werden.
@DuduMarkovitz. . . Das ist komisch. Ich weiß nicht einmal, was ich gedacht habe. –
Update hat Auswirkungen auf die Leistung.
Aktualisieren Sie nur das, was Sie aktualisieren müssen.
update t
set coin_id = ltrim(coin_id)
where coin_id like ' %'
- 1. mit mehreren Leitungen mit Linien mit Platz beginnend
- 2. Umleiten alle URLs beginnend mit/5
- 3. versuchen, eine Telefonnummer ohne Platz zu bekommen
- 4. Wie kann ich alle Datensätze auswählen, die ein Bigint-Feld haben, beginnend mit einer bestimmten Ziffer?
- 5. jQuery Wählen Sie alle Tabellen mit ID beginnend mit
- 6. Beginnend mit Spring-Framework
- 7. DirectoryInfo.getFiles beginnend mit
- 8. Regex - Satz beginnend mit
- 9. DROP alle Tabellen beginnend mit "EXT_" in Oracle SQL
- 10. scp alle Dateien beginnend mit 'Datei' von einem Server
- 11. Entfernen Sie alle Leerzeichen aus Zeilen beginnend mit bestimmten Wort
- 12. CSS-Selektor für alle Elemente beginnend mit einem Präfix
- 13. Rails Mysql - finde alle Werte beginnend mit weißem Abstand
- 14. Wie ändert man alle Strings, beginnend mit + zu Links?
- 15. Mysql Update alle Spalten beginnend mit dem gleichen Name
- 16. Zeige alle Dateien von Verzeichnis beginnend mit der neuesten Datei
- 17. Beginnend mit Funken Laravel
- 18. Get URL beginnend mit
- 19. Problem beginnend mit Java
- 20. Beginnend mit SharePoint
- 21. Erkennen mehrerer Strings beginnend mit @
- 22. Solr Match String beginnend mit
- 23. HIVE versuchen, ein Feld aus einer anderen select-Anweisung Feld
- 24. Thread.Sleep(); Platz für alle das Programm
- 25. Machen alle Fotos Platz über CSS
- 26. jQuery benutzerdefinierte Validierung: Telefonnummer beginnend mit 6
- 27. Versuchen, Prozedur zu erstellen, um MySql Feld mit Alter
- 28. Versuchen, Tabelle Header-Feld mit engsten und .Find-Funktionen ziehen
- 29. Migration Fehler Django, versuchen Feld aufzuräumen Datum mit schlechten Standard
- 30. Innerhalb von ScrollView anzeigen nicht alle Platz
'UPDATE table_name SET coin_id = LTRIM (coin_id)' – AbraCadaver
@AbraCadaver Post als Antwort, so kann diese Frage – davejal