我有此查詢一個問題,我想檢索所有記錄,但在離開前二十,添加限制與查詢在asp.net
錯誤是:{「附近有語法錯誤‘限制’。」}
"SELECT * FROM [upload_news] WHERE [country]='" + country.Text + "' ORDER BY [upload_time] DESC LIMIT 20";
我有此查詢一個問題,我想檢索所有記錄,但在離開前二十,添加限制與查詢在asp.net
錯誤是:{「附近有語法錯誤‘限制’。」}
"SELECT * FROM [upload_news] WHERE [country]='" + country.Text + "' ORDER BY [upload_time] DESC LIMIT 20";
您不能使用SQL Server LIMIT
。您可以使用Top 20
。或者,您可以使用ROW_NUMBER,然後基於此進行過濾。
你也應該parametrized your query,你當前的查詢很容易SQL Injection。
using (SqlCommand cmd = new SqlCommand(@"SELECT TOP 20 *
FROM [upload_news]
WHERE [country][email protected] ORDER BY [upload_time] DESC", connection))
{
cmd.Parameters.AddWithValue("@country", country.Text);
//,.... rest of the code
}
如果它是SQL Server,則需要使用頂級N.
SELECT TOP 20 * FROM [upload_news] WHERE [country]='" + country.Text + "'
ORDER BY [upload_time] DESC
但使用此查詢離開前二十
SELECT * FROM(SELECT(ROW_NUMBER)OVER(ORDER BY upload_time遞減())AS的rowNum,* FROM [ upload_news])作爲temp其中temp.rowNum> 20
,請告訴我,如果它的工作
+1提供一個選項,是不可怕容易注入。 – Zane