问题描述
工程实践2中遇到的问题。数据库中设计表的时候,有时候为了满足需求,某些字段的值是中英文与数字混合的,当需要查询这种字段并且排序时,直接使用“order by 某个字段”,得到的结果不是我们想要的,具体看例子。
设计:字段userid,类型为varchar,大小为10,格式为OAxxx,其中OA代表运营账号,xxx代表具体的编号。
需求:查询所有的运营账号,并且按照编号从小到大排序
test.sql
DROP DATABASE IF EXISTS test;
CREATE DATABASE test;
USE test;
DROP TABLE IF EXISTS oat;
CREATE TABLE OAT (
userid VARCHAR (10) NOT NULL,
PRIMARY KEY (userid)
) ENGINE = INNODB DEFAULT CHARSET = utf8;
INSERT INTO OAT VALUES('OA2'),('OA13'),('OA0'),('OA11'),('OA10'),('OA9');
SELECT * FROM OAT ORDER BY userid ASC;
查询结果如下