带有多条记录的MySQL“SELECT LIMIT 1”是否从顶部选择第一条记录?

时间:2013-07-07 22:59:56

标签: mysql select limit

我搜索过并搜索过,找不到这个问题的答案,我可能会以错误的方式提问。

我正在查询员工数据库。

我需要根据位置ID获取详细信息,但是该位置ID可能有多个记录,因为该组织有永久员工和临时员工,他们的职位相同。

因此,为了获得位置id的CURRENT占用者,我需要查询从TOP DOWN中选择匹配位置字符串的FIRST记录。

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

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

提前致谢。

3 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:3)

从手册:

  

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

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

答案 2 :(得分:2)

随机获得一个 * 。除非您添加ORDER BY子句,否则无法分辨它将是什么。

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