2017-02-15 1 views
1

Ich versuche, eine SQL-Abfrage zu erstellen, die nur numerische Ergebnisse zurückgibt.SQL-Ergebnis nur mit numerischen Werten

Ich versuchte dies, aber es did't Arbeit für mich:

select * 
from crm.Communication cm 
where cm.TypeKey = 4 and data like '%[^0-9]%' 

ich da das Ergebnis nicht will, wenn ein alphanumerischer Wert ist.

Hoffe ihr könnt mir helfen.

Bg, Frankreich

+0

Bitte Tabellenschema bereitstellen. Siehe http://StackOverflow.com/Help/Mcve – Sangharsh

+0

"Es hat nicht für mich funktioniert" ist keine Problembeschreibung. Warum hat es nicht funktioniert? Hat es einen Fehler ausgelöst? Wenn ja, was war der Fehler? Hat es nicht die erwarteten Ergebnisse geliefert? Was ist es zurück gekommen und was hast du erwartet? – HoneyBadger

+1

Sie wollen "nicht wie a-z". – jarlh

Antwort

1

können Sie dies versuchen?

select * 
from crm.Communication cm 
where cm.TypeKey = 4 and ceil(data) = data 

und wenn Sie möchten, REGEXP verwenden

Sie so wie entfernen müssen und setzen REGEXP

select * 
from crm.Communication cm 
where cm.TypeKey = 4 and data REGEXP '[^0-9]' 
+0

Können Sie beschreiben, was hier passiert? (Ich kenne MySQL nicht.) – jarlh

+0

Lassen Sie mich zuerst wissen, ob es funktioniert oder nicht –

+0

@jarlh Was passiert ist, dass Sie keine regulären Ausdrücke in beliebigen SQL-Funktionen ausgeben können - es ist nur in denen möglich, die sie tatsächlich erwarten. –

-1

Verwendung nicht so gut

select * 
from crm.Communication cm 
where cm.TypeKey = 4 and data not like '%[^0-9]%' 
-1

Sie verwenden den richtigen Regex, aber statt regulären Ausdruck verwenden Sie wie. Verwenden Sie REGEXP anstelle von LIKE wie folgt:

select * 
from crm.Communication cm 
where cm.TypeKey = 4 and data REGEXP '%[^0-9]%' 
Verwandte Themen