我想从我的 ASP.NET 应用程序向 MySQL 发出此查询
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\\_%')
换句话说,我知道我在这里遗漏了一些非常明显的东西,但是我如何在查询中放置 MySQL 的转义反斜杠而不用 C#(un)帮助转义它?
最佳答案
在标准 SQL 中,您可以使用 ESCAPE
关键字来设置转义字符。
MySQL 在这方面遵循标准 SQL,如 LIKE
谓词文档所述:
像这样:
...
field_id LIKE '3\_%' ESCAPE '\'
这将使通配符 _
被视为字符串文字。
希望这就是你所问的。
关于c# - 在 c# 的 MySQL 查询中使用文字下划线字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13268907/