SQL Nach nicht erlaubten Zeichen in Datensätzen suchen

estre

Commander
Registriert
Dez. 2005
Beiträge
3.006
Hallo zusammen,

folgende Herausforderung:
Ich habe eine Tabelle mit 30000 Datensätzen. Nun ist es so, dass in den Datensätzen nur ein bestimmer Zeichensatz vorkommen darf (Aa-Zz, -, !,@, usw.).
Nun möchte ich herausfinden welche Datensätze andere Zeichen als diese enthalten, sozusagen eine "Reverse"-Suche.

Folgendermaßen habe ich angefangen:
Code:
select * from Tab1 where Name NOT IN ('%?%', '%/%','%:%','%(%','%)%','%.%', '%,%','%+%','%-%', etc...);


Irgendwie bringt mich das aber nicht zum gewünschten Ergebnis (das % soll jeweils eine Wildcard sein, da die Zeichen überall vorkommen können), vorallem fehlt da noch ein großer Teil, da ja auch das ganze Alphabet erlaubt ist.
Kann man das irgendwie auch komfortabler lösen?

Vielen Dank für Eure Hilfe!

Grüße
 
Hi,

SELECT * FROM [TABELLE] WHERE [SPALTENNAME] LIKE '%?%'

liefert dir doch alle die irgendwo ein Fragezeichen enthalten oder? Also packst du als "LIKE" alles, was nicht drin stehen darf und du solltest alle Datensätze erhalten, die nicht "konform" sind - oder verstehe ich dein Problem nicht? Du suchst doch einfach alles, was nicht erlaubt ist, oder?

VG,
Mad
 
http://dev.mysql.com/doc/refman/5.0/en/pattern-matching.html
Code:
mysql> SELECT * FROM pet WHERE name REGEXP '^.{5}$';
+-------+--------+---------+------+------------+-------+
| name  | owner  | species | sex  | birth      | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen   | cat     | m    | 1994-03-17 | NULL  |
| Buffy | Harold | dog     | f    | 1989-05-13 | NULL  |
+-------+--------+---------+------+------------+-------+
 
Hi,

@Madman

theoretisch könnte ich das so auch machen, allerdings weiß ich dann nicht ob ich wirklich alle Sonderzeichen berücksichtigt habe....

@Yuuri
schaue ich mir mal an, danke!
 
Hi,

du weisst nicht, welche Sonderzeichen nicht erlaubt sind? Worum gehts denn da ganz genau bitte?

VG,
Mad
 
Madman1209 schrieb:
Hi,

du weisst nicht, welche Sonderzeichen nicht erlaubt sind? Worum gehts denn da ganz genau bitte?

VG,
Mad

aus den Datensätzen in der Tabelle wird eine XML-Datei geschrieben, die wiederum in ein anderes Tool importiert wird. Das Problem ist, wenn die XML-Datei ein nicht erlaubtes Zeichen enthält fährt der Import vor die Wand.
Deswegen war mein Ansatz die Tabelle vorher zu bereinigen. Deine Gedanke ist ja nicht falsch, wenn ich die erlaubten Zeichen kenne, kann ich auf die nicht erlaubten schließen. Allerdings kann mir dann niemand garantieren, dass ich auch wirklich alle nicht erlaubten Sonderzeichen angegeben habe. Umlaute sind z.B. auch nicht erlaubt oder was ist mit irgendwelchen Accents die evtl. vorhanden sind, dies ist ebenfalls nicht erlaubt.
Aufgrund des großen Ranges an möglichen Sonderzeichen möchte ich die Suche so gestalten, dass er mir einfach alle Datensätze anzeigt in denen die erlaubten Zeichen nicht vorkommen.


Grüße
 
Umlaute mußt Du entsprechend konvertieren. Wenn Du als Export in XML beispielsweise einfach UTF-8 rausschreibst, ist das Problem erledigt. Bei nicht gewünschten Zeichen wäre eine einfache Lösung, sie zu entsprechend mittels ESCAPE zu markieren.
 
Zurück
Oben