從我的ASP.NET應用程序我想這個查詢發出到MySQL在MySQL查詢使用文字下劃線從C#
SELECT * FROM responses WHERE field_id LIKE '3\_%'
換句話說,我正在尋找記錄中,其中第二個字符是下劃線的文字字符。
通過模型設計器生成的代碼看起來是這樣的:
public virtual RiskAnalysis.responsesDataTable GetResponseGroupForAnalysis(int raid, string fieldid) {
this.Adapter.SelectCommand = this.CommandCollection[2];
this.Adapter.SelectCommand.Parameters[0].Value = ((int)(raid));
if ((fieldid == null)) {
throw new global::System.ArgumentNullException("fieldid");
}
else {
this.Adapter.SelectCommand.Parameters[1].Value = ((string)(fieldid));
}
RiskAnalysis.responsesDataTable dataTable = new RiskAnalysis.responsesDataTable();
this.Adapter.Fill(dataTable);
return dataTable;
}
如果我調用這個函數像這樣:
string filter_string = @"3\_%";
ResponsesAdapter.GetResponseGroupForAnalysis(10, filter_string);
MySQL日誌報告查詢看起來像這樣:
SELECT *
FROM responses
WHERE (ra_id = 10) AND (field_id LIKE '3\\_%')
換句話說,我知道我失去了一些東西言自明這裏,但我怎麼PLAC e在沒有C#(un)的查詢中,MySQL的轉義反斜槓有助於轉義它?
如果你想在你的C#代碼中添加另一個反斜槓?我知道這聽起來違反直覺,但它可能會向庫顯示你想要一個實際的反斜槓。 –
然後我得到'SELECT * FROM response WHERE(ra_id = 10)AND(field_id LIKE'3 \\\\ _%')',它將匹配field_id以3開頭的記錄\\ [單個字符] [0個或更多個字符] –