Đây là một vấn đề với thiết kế cơ sở dữ liệu của bạn. Số chủ đề nên được lưu trữ dưới dạng số nguyên. Nếu bạn không thể thay đổi thiết kế, hãy thử truy vấn sau:
SELECT title
FROM table1
ORDER BY CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(title, ' ', 2), ' ', -1)
AS UNSIGNED);
Kết quả:
'topic 1 foo' 'topic 2 bar' 'topic 10 baz'
Dữ liệu thử nghiệm:
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');