查询以查找表中的最新数据行

时间:2014-06-15 15:54:51

标签: mysql

我是mysql的完整菜鸟。 使用查询中的select来查找表中的最新条目。 该表包含以下列:EMPID,NAME,POSITION,SALARY,DEPTCODE,BOSSID

PRIMARY KEY是EMPID,但EMPID不是自动增量的。

EMPID输入为EMPID1000或EMPID5000

数字不是连续的

1 个答案:

答案 0 :(得分:1)

一种可能的方法是

select * from your_table 
order by substring_index(EMPID,'EMPID',-1) asc ;

这是一个例子

mysql> create table test (empid varchar(100),name varchar(100));
Query OK, 0 rows affected (0.11 sec)

mysql> insert into test values 
('EMPID1000','A'),
('EMPID1001','B'),
('EMPID5000','C'),
('EMPID4000','D'),
('EMPID2000','E'),
('EMPID3000','F');
Query OK, 6 rows affected (0.07 sec)
Records: 6  Duplicates: 0  Warnings: 0

mysql> select * from test order 
by substring_index(empid,'EMPID',-1) asc ;
+-----------+------+
| empid     | name |
+-----------+------+
| EMPID1000 | A    |
| EMPID1001 | B    |
| EMPID2000 | E    |
| EMPID3000 | F    |
| EMPID4000 | D    |
| EMPID5000 | C    |
+-----------+------+

因此,您可以使用desc限制1来获取最后一个

mysql> select * from test 
order by substring_index(empid,'EMPID',-1) desc limit 1 ;
+-----------+------+
| empid     | name |
+-----------+------+
| EMPID5000 | C    |
+-----------+------+