sql >> Databáze >  >> RDS >> Mysql

Číselné pořadí při vracení výsledků z MySQL

Toto je problém s návrhem vaší databáze. Číslo tématu by mělo být uloženo jako celé číslo. Pokud nemůžete změnit design, zkuste místo toho tento dotaz:

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

Výsledek:

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

Testovací data:

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. base64 kódování v MySQL

  2. Jak porovnat, zda dva řetězce obsahují stejná slova v T-SQL pro SQL Server 2008?

  3. Hledání nadcházejících narozenin pomocí jOOQ

  4. Duplicitní záznamy v DB