【问题标题】:SQL Select String with KeywordSQL 选择带关键字的字符串
【发布时间】:2013-07-16 13:32:07
【问题描述】:

假设我有一个 db 表,Errors

 [ID]    [ErrorDescription]
   1     "SELECT Name LIKE '*A*' Returned 0 Results"
   2     "SELECT Returned Multiple Results"

我想运行一个类似

的查询
SELECT ID 
FROM Errors 
WHERE ErrorDescription = 'SELECT Name LIKE '*A*' Returned 0 Results'

有没有办法让这个工作?目前我正在获得一个

OLEDB 异常“查询表达式中的语法错误(缺少运算符)”

当我尝试使用 OleDbDataAdapter 在 MS Access 文件上运行查询时。我环顾四周,找不到与此相关的任何内容,大量使用方括号作为关键字列名称,但不是我的特定问题。

【问题讨论】:

    标签: c# sql ms-access select oledb


    【解决方案1】:

    必须转义单引号,否则会混淆解析器:

    SELECT ID FROM Errors WHERE ErrorDescription ='SELECT Name LIKE ''*A*'' Returned 0 Results'
    

    【讨论】:

      【解决方案2】:

      您可以参数化该查询。但是,无论您如何处理,都需要转义引号。

      SELECT ID FROM Errors WHERE ErrorDescription ='SELECT Name LIKE ''*A*'' Returned 0 Results'
      

      【讨论】:

        【解决方案3】:

        问题是你的字符串中有单引号,这导致解析器在LIKE 之后的第一个引号处结束字符串文字。将您的查询更改为:

        SELECT ID 
        FROM Errors 
        WHERE ErrorDescription ='SELECT Name LIKE ''*A*'' Returned 0 Results'
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-07-08
          • 2017-06-10
          • 1970-01-01
          • 2020-05-09
          • 1970-01-01
          • 2013-10-06
          • 2013-01-30
          • 1970-01-01
          相关资源
          最近更新 更多