15

我已经搜索和搜索,找不到这个问题的答案,我可能以错误的方式问它。

我正在查询员工数据库。

我需要根据职位 id 获取详细信息,但是该职位 id 可能有多个记录,因为该组织有永久员工和临时员工对同一职位采取行动。

因此,为了获取位置 id 的当前占用者,我需要我的查询从 TOP DOWN 中选择与位置字符串匹配的第一条记录。

这会从顶部选择第一个匹配的记录吗?

SELECT * WHERE `position_id`="00000000" LIMIT 1;

提前致谢。

4

3 回答 3

15

您需要一个ORDER BY子句来定义表中各个记录之间的顺序。如果不使用ORDER BY,则可以假设记录之间没有固定的顺序,并且每次执行查询时都可以获得新的顺序。

于 2013-07-07T23:04:03.387 回答
3

从手册:

使用一个参数,该值指定从结果集开头返回的行数

因此,LIMIT 1您可以从结果集中获得第一行。结果集取决于使用的引擎和您拥有的索引。如果要添加第一行,则需要创建另一列来定义它。

于 2013-07-07T23:04:05.090 回答
2

它只是随机获得一个*ORDER BY除非您添加一个子句,否则无法判断它将是哪一个。

*当然,不是随机的。这取决于记录的存储方式,重复查询可能每次都返回相同的结果,至少只要您不修改表或其内容。我的意思是,你不能确定。

于 2013-07-07T23:03:18.800 回答