我用这个作为示例来显示我使用CAST
的不正确结果:
CREATE TABLE tbl (ints VARCHAR(11));
INSERT INTO tbl VALUES
('100A'),
('100B'),
('101'),
('102'),
('101A'),
('101B'),
('101C'),
('101D'),
('100C'),
('100D'),
('101B');
SELECT * FROM tbl ORDER BY CAST(ints AS SIGNED)
结果应为
100A
100B
100C
100D
101
101A
101B
101C
101D
102
答案 0 :(得分:0)
尝试
SELECT *
FROM tbl
ORDER BY CAST(ints AS char)
答案 1 :(得分:0)
你几乎就在那里,使用
SELECT *
FROM tbl
ORDER BY CAST(ints AS SIGNED), ints
答案 2 :(得分:0)
SELECT * FROM tbl ORDER BY CAST(`ints ` AS SIGNED)
用于逆序
SELECT * FROM tbl ORDER BY CAST(`ints ` AS SIGNED) DESC