在asp.net中使用查询添加LIMIT

时间:2014-03-25 14:50:49

标签: asp.net sql sql-server

我对此查询有疑问我要检索所有记录但是先离开二十,

错误是:{“'LIMIT'附近的语法不正确。”}

"SELECT * FROM [upload_news] WHERE [country]='" + country.Text + "' ORDER BY [upload_time] DESC LIMIT 20";

3 个答案:

答案 0 :(得分:6)

您不能将LIMIT与SQL Server一起使用。您可以使用Top 20。或者您可以使用ROW_NUMBER然后根据它进行过滤。

此外,您应该parametrized your query,您当前的查询容易SQL Injection

using (SqlCommand cmd = new SqlCommand(@"SELECT TOP 20 * 
                                         FROM [upload_news] 
                                         WHERE [country]=@country ORDER BY [upload_time] DESC", connection))
{
    cmd.Parameters.AddWithValue("@country", country.Text);
    //,.... rest of the code
}

答案 1 :(得分:2)

如果是SQL Server,则需要使用Top N。

SELECT TOP 20 * FROM [upload_news] WHERE [country]='" + country.Text + "'
ORDER BY [upload_time] DESC 

答案 2 :(得分:0)

如果你想要检索所有记录但是要留下前20个

使用此查询 select * from(SELECT(ROW_NUMBER()OVER(ORDER BY upload_time desc))AS rowNum,* FROM [upload_news])为temp,其中temp.rowNum> 20

请告诉我它是否有效