Mysql
 sql >> база данни >  >> RDS >> Mysql

Числен ред при връщане на резултати от MySQL

Това е проблем с дизайна на вашата база данни. Номерът на темата трябва да се съхранява като цяло число. Ако не можете да промените дизайна, опитайте вместо това тази заявка:

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

Резултат:

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

Данни от теста:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. отчитане на броя на изпълнението на скрипта

  2. Извличане на LONGBLOB от MySQL в C#

  3. Изявление Where:съответства на една дума (не на подниз)

  4. MySQL Попълнете липсващите дати между две дати за дадено състояние

  5. как да запазя enum стойност в DB с Hibernate?