Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MYSQL wybierz fragment ciągu i uporządkuj według tego fragmentu

Proponuję zapoznać się z funkcjami tekstowymi MySQL a dokładniej SUBSTRING_INDEX funkcjonować. Powód, dla którego sugeruję to zamiast SUBSTRING Dzieje się tak dlatego, że liczba przed lub po ukośniku może być większa niż pojedyncza liczba, przez co długość pierwszej i/lub drugiej części byłaby różna.

Przykład:

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;

Wynik:

Dodatkowy przykład

W tym przykładzie używam PRZESYŁANIE przekonwertować drugą część na liczbę całkowitą bez znaku na wypadek, gdyby zawierała dodatkowe znaki, takie jak symbole lub litery. Innymi słowy, druga część „web-4/15”. będzie „15”, a druga część „web-4/15****” również będzie „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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kodowanie znaków JDBC

  2. Jak uzyskać listę miesięcy między dwiema datami w mysql

  3. Zwracanie wartości, nawet jeśli nie ma wyniku

  4. Przechowywanie tagów w bazie danych. Przechowuj tag raz czy wiele razy?

  5. MYSQL:Użytkownik — konfiguracja tabeli szczegółów profilu — najlepsze praktyki