sql >> Database >  >> RDS >> Mysql

Hoe cijfers aan het einde van de tekenreeks te verwijderen met behulp van SQL

Dit lijkt te werken:

select left( concat('2Ga4la2009','1'), length(concat('2Ga4la2009','1')) - length(convert(convert(reverse(concat('2Ga4la2009','1')),unsigned),char)))

De concat('myvalu', '1') is om te beschermen tegen getallen die eindigen op 0s.

De achterkant draait het om zodat het nummer vooraan staat.

De inner convert verandert de omgekeerde tekenreeks in een getal en laat de achterste tekens vallen.

De buitenste converteert het numerieke deel terug naar karakters, zodat je de lengte kunt krijgen.

Nu weet u de lengte van het numerieke gedeelte en kunt u het aantal tekens van de oorspronkelijke waarde bepalen dat u wilt afkappen met de functie "left()".

Lelijk, maar het werkt. :-)



  1. Hoe kan ik de ORDER BY RAND()-functie van MySQL optimaliseren?

  2. Oracle-foutafhandeling

  3. verschil tussen ON-clausule en het gebruik van clausule in sql

  4. Wat is de snelste manier om een ​​XML-bestand in MySQL te laden met C#?