sql >> Databasteknik >  >> RDS >> Mysql

MYSQL välj en bit av en sträng och ordna efter den biten

Jag skulle föreslå att du tittar på MySQL String Functions och mer specifikt SUBSTRING_INDEX fungera. Anledningen till att jag föreslår den här över SUBSTRING beror på att numret före eller efter snedstrecket kan vara mer än ett enda tal vilket skulle göra att längden på den första och/eller andra delen varierar.

Exempel:

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:

Ytterligare exempel

I det här exemplet använder jag CAST för att konvertera den andra delen till ett heltal utan tecken i fall det innehåller ytterligare tecken som symboler eller bokstäver. Med andra ord, den andra delen av "web-4/15." skulle vara "15" och den andra delen av "web-4/15****" skulle också vara "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. Koppla ihop flera tabeller i olika databaser? MySql

  2. Hur man ställer in databasens tidszon i application.ini

  3. Hitta alla de kolumner som bara har nollvärden i en MySQL-tabell

  4. kan inte öka open-files-limit i mariadb 10 på centos7