sql >> Database >  >> RDS >> Mysql

MYSQL selecteer een stuk van een string en bestel op dat stuk

Ik stel voor dat je kijkt naar de MySQL String Functions en meer specifiek de SUBSTRING_INDEX functie. De reden dat ik dit voorstel boven SUBSTRING is omdat het getal voor of na de schuine streep meer dan een enkel getal kan zijn, waardoor de lengte van de eerste en/of tweede delen zou kunnen variëren.

Voorbeeld:

SELECT   `info`,
         SUBSTRING_INDEX(`info`, '/', 1) AS `first_part`,
         SUBSTRING_INDEX(`info`, '/', -1) AS `second_part`
FROM     `table`
ORDER BY `first_part` ASC,
         `second_part` ASC;

Resultaat:

Aanvullend voorbeeld

In dit voorbeeld gebruik ik CAST om het tweede deel om te zetten in een geheel getal zonder teken voor het geval het extra tekens bevat, zoals symbolen of letters. Met andere woorden, het tweede deel van "web-4/15." zou "15" zijn en het tweede deel van "web-4/15****" zou ook "15" zijn.

SELECT   `info`,
          SUBSTRING_INDEX(`info`, '/', 1) AS `first_part`,
          CAST(SUBSTRING_INDEX(`info`, '/', -1) AS UNSIGNED) `second_part`
FROM     `table`
ORDER BY `first_part` ASC,
         `second_part` ASC;


  1. Mysql-query om telling per maand te krijgen

  2. Hoe koppel ik C++ MySQL Connector-bibliotheken aan Cmake?

  3. Haal alle ouders op voor een kind

  4. PostgreSQL unnest() met elementnummer