2017-03-24 44 views
0

Ich muss eine ESN-Nummer mit Javascript überprüfen. Ich war recht erfolgreich es gelingt durch einen einfachen regulären Ausdruck und eine if-Anweisung:reguläre Ausdrücke in SQL

$('#ESN_val').on('keyup', function() { 
       var ESN = document.getElementById('ESN_val').value; 
       if (/^[0-9A-F]{8}$/.test(ESN) && ESN.length == 8) {    
       alert('valid ESN') 
       }else{ 
        'invalid ESN' 
       } 
      }); 

Jetzt muß ich nur das gleiche Ergebnis von SQL erhalten, sobald die gesamten Daten in der Tabelle enthalten als angebracht. Table tsp_filtered_data name:

Ich brauche die Abfrage im folgenden Format. Es sollte eine neue Spalte sein und es sollte ‚gültig ESN‘ oder ‚Ungültige ESN‘

SELECT 
tsp_filtered_data.Document_id, 
tsp_filtered_data.ESN, 
(**********Regular Expresseion********) AS ESN_status 
FROM 
tsp_filtered_data 

Bitte sagen Sie mir die Abfrage enthalten, die ich enthalten sollte.

+0

_thank Sie chamath_ Sie danken Ihnen? Fügen Sie 2 Leerzeichen nach der Zeile hinzu und geben Sie nur die Schlüsselfunktionen in der Ausgabe –

+1

https://dev.mysql.com/doc/refman/5.7/en/regexp.html ein – Justinas

Antwort

0

Ein Fall, WANN und ein RLIKE/REGEX sollte tun.

SELECT 
t.Document_id, 
t.ESN, 
case when t.ESN RLIKE '^[0-9A-F]{8}$' then 'valid ESN' else 'invalid ESN' end AS ESN_status 
FROM 
tsp_filtered_data t 
0

Sie können den Operator REGEXP verwenden, um nach Übereinstimmungen zu suchen. Es wird 0 oder 1 als Ergebnis zurückgeben.

SELECT 
tsp_filtered_data.Document_id, 
tsp_filtered_data.ESN, 
tsp_filtered_data.ESN REGEXP '^[0-9A-F]{8}$' AS ESN_status 
FROM 
tsp_filtered_data