C# 我的SqlQuery返回的是最后一个结果,而不是第一个结果
我生成了一个SQLQuery来返回第一个结果,但是查询似乎返回了最后一个结果 代码如下:C# 我的SqlQuery返回的是最后一个结果,而不是第一个结果,c#,mysql,sql,asp.net,asp.net-mvc,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&g
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]);
}
名称似乎等于最后一项而不是第一项如果您有标识键(如Id),则可以在查询中按Id DESC添加订单:
SELECT DISTINCT (locations.Code) FROM locations ORDER BY Id DESC LIMIT 1
或
将查询更改为:
SELECT DISTINCT (locations.Code) FROM locations
并更改行:
返回名称[0];
到
返回name.LastOrDefault;
当然,使用System.Linq因为没有ORDERBY子句,所以获取记录的顺序被认为是未定义的。这可能是确定的,但重点是…不要指望它。正如Alex K所说,添加一个ORDER BY。您可以删除您的问题…Stackoverflow似乎只允许您每小时发布一个问题,因此不希望它必须等待那个长名称。last应该执行此操作。当我这样做时,它仍然等于最后一个值。这就好像数组的行为就像一个字符串,只是覆盖了一个值。您选择了locations表或视图的code字段,但将其限制为一条记录。sql中的记录没有排序,因此数据库可以自由决定应按哪个顺序返回哪个记录。要指定所需的顺序,应将orderby添加到select语句中,如@AlexK。已经告诉过您。该表没有键id。此外,表中的项目按输入到表中的时间排序table@Decepticon-其中的项目按输入表格的时间排序-请参阅我的其他注释,不,不是。然后按日期排序说明