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

Numerisk rækkefølge ved returnering af resultater fra MySQL

Dette er et problem med dit databasedesign. Emnenummeret skal gemmes som et heltal. Hvis du ikke kan ændre designet, så prøv denne forespørgsel i stedet:

SELECT title
FROM table1
ORDER BY CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(title, ' ', 2), ' ', -1)
              AS UNSIGNED);

Resultat:

'topic 1 foo'
'topic 2 bar'
'topic 10 baz'

Testdata:

DROP TABLE IF EXISTS table1;
CREATE TABLE table1 (title VARCHAR(100) NOT NULL);
INSERT INTO table1 (title) VALUES
('topic 1 foo'),
('topic 2 bar'),
('topic 10 baz');


  1. Leder efter hvad der svarer til dictcursor i flaskext.mysql

  2. MySQL fejl 1449:Brugeren angivet som definerer eksisterer ikke

  3. vælg 30 tilfældige rækker, hvor sumbeløb =x

  4. Oracle/SQL - Kombination af tællinger fra 'urelaterede' ikke-relaterede tabeller