我对此查询有疑问我要检索所有记录但是先离开二十,
错误是:{“'LIMIT'附近的语法不正确。”}
"SELECT * FROM [upload_news] WHERE [country]='" + country.Text + "' ORDER BY [upload_time] DESC LIMIT 20";
答案 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
请告诉我它是否有效