MySQL添加数字

时间:2011-05-24 08:56:30

标签: mysql

我有公司ID号和雇主的数据库,现在我需要知道谁是第一,第二......雇主进入数据库。为此,我需要为每个人添加数字:

CompanyID   NameOfEmp       PositionInDB
111         Emp1            1
111         Emp2            2
111         Emp3            3
112         Emp1            1
112         Emp2            2
113         Emp1            1
114         Emp1            1
114         Emp2            2 

1 个答案:

答案 0 :(得分:1)

表以未定义的顺序存储。要定义头寸,您必须自己定义订单。此示例根据员工姓名分配订单。它将为每个公司的员工提供数字:

select  *
,       (
        select  count(*) + 1
        from    YourTable yt2
        where   yt2.CompanyID = yt1.CompanyID
                and yt2.NameOfEmp < yt1.NameOfEmp
        ) as PositionInDb
from    YourTable yt1

由于您使用的是MySQL,您还可以使用变量:

set @num  = 1;

select  CompanyID
,       NameOfEmp
,       @num := if(@last_comp = CompanyID, @num + 1, 1) as PositionInDb
,       @last_comp := CompanyID as dummy
from    YourTable
order by
        CompanyID
,       NameOfEmp

变量快速简便,但不便携,大多数DBA都不喜欢它们。