2017-07-04 1 views
3

i mit einem var char Feld wie folgt eine Tabelle reference_number eigentlich muss ich in diesem BereichWie max von mysql Varchar-Spalte finden

<<student>> 

|`id` | `reference_number`(varchar(25)) 
-------------------------- 
| 1 | L250 
| 2 | SP521 
| 3 | S120 
| 4 | SP500 
| 5 | S122 

das gewünschte Ergebnis ist 521 die maximal Anzahl bekommen, denn wenn wir sind die nicht numerischen Wert zu vermeiden, dann wird es kommen wie diese

|`id` | `reference_number` 
-------------------------- 
| 1 | 250 
| 2 | 521 
| 3 | 120 
| 4 | 500 
| 5 | 122 

wie die den Wert 521 aus der Tabelle Sie

+0

Können Sie eine benutzerdefinierte Funktion verwenden? Wenn ja, wird es ein einfacher Prozess sein. – Arulkumar

Antwort

1

ich gehe davon bekommen haben extrahiert 'reference_number' wie im zweiten Snippet des ersten Snippets gezeigt. wenn ja, versuchen :::

select max(cast (reference_number as int)) from student 
1

Um die Zahl 521 (und alle Zahlen aus der REFERENCE_NUMBER Spalte) zu erhalten Sie könnten versuchen:

SELECT * 
FROM yourtable 
WHERE reference_number REGEXP '^[0-9]+$'; 

Und dann können Sie eine hinzufügen Ordnung nach Aussage.

+0

kann ich irgendeine zusätzliche Bedingung in welchem ​​Teil benutzen? –

+0

Ich denke, es sollte in Ordnung sein. Probieren Sie es aus und lassen Sie mich wissen, ob es gut funktioniert hat. – Assafs

+0

seine WorkingFine..I haben eine zusätzliche Spalte schul_ID ... die Abfrage muss so sein SELECT * VON yurtable WHERE Referenznummer REGEXP '^ [0-9] + $' und Schule_ID = '10'; –