sql >> Database teknologi >  >> RDS >> Mysql

MYSQL vælg et stykke af en streng og bestil efter det stykke

Jeg vil foreslå, at du ser på MySQL-strengfunktionerne a> og mere specifikt SUBSTRING_INDEX fungere. Grunden til, at jeg foreslår denne over SUBSTRING er fordi tallet før eller efter skråstreg kan være mere end et enkelt tal, hvilket ville få længden af ​​den første og/eller anden del til at variere.

Eksempel:

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;

Resultat:

Yderligere eksempel

I dette eksempel bruger jeg CAST at konvertere den anden del til et heltal uden fortegn, hvis det indeholder yderligere tegn såsom symboler eller bogstaver. Med andre ord, anden del af "web-4/15." ville være "15" og anden del af "web-4/15****" ville også være "15".

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. IntegrityError duplikatnøgleværdi overtræder unik begrænsning - django/postgres

  2. SQL Server dynamisk PIVOT-forespørgsel?

  3. MySQL vælg deltagelse hvor OG hvor

  4. Mærkelig SQLAlchemy-fejlmeddelelse:TypeError:'dict'-objekt understøtter ikke indeksering