我的SqlQuery返回的是最后一个结果而不是第一个结果

时间:2014-10-17 14:20:41

标签: c# mysql sql asp.net asp.net-mvc

我已经生成了一个SQLQuery来返回第一个结果,但是查询似乎返回了最后一个结果。

以下代码:

   public ActionResult Location()
   {
       List<string> name;
       using (var dbContext = new DatabaseContext())
       {
           name =
               dbContext.Database.SqlQuery<String>(
                   String.Format("select distinct (locations.Code) from locations LIMIT 1")).ToList();
       };
       return(name[0]);
    }

名称似乎等于最后一项而不是第一项

2 个答案:

答案 0 :(得分:1)

如果你有一个身份密钥,例如“Id”,你可以在查询中添加“ORDER BY Id DESC”:

SELECT DISTINCT (locations.Code) FROM locations ORDER BY Id DESC LIMIT 1

OR

将您的查询更改为:

SELECT DISTINCT (locations.Code) FROM locations

并更改行: “return(name[0]);” 至 “return name.LastOrDefault();” 当然使用System.Linq

答案 1 :(得分:1)

因为你没有&#34; ORDER BY&#34; &#34; order&#34;其中记录的内容被视为&#34; undefined。&#34; (这可能是确定性的,但重点是......不要指望它。)正如Alex K所说,添加一个ORDER BY。