【问题标题】:Error 1064# While using mysql Like keyword错误 1064# 使用 mysql Like 关键字时
【发布时间】:2014-05-04 15:07:31
【问题描述】:

我的sql查询是:

mysql> select emp_id where classes like '%'XII'%';

但我收到此错误:

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“where classes like '%'XII'%'' 附近使用正确的语法

我可以理解错误是由于我在类似参数中使用的单引号引起的,但我的数据库中有字符串say 'X','XI','XII'。这就是我用单引号查询的原因,因为如果我在 String 'XI','XII' 中查询类 X,那么它将返回那些正在教授 XI 和 XII 标准的人的 emp_id,这是不可取的。

我可以在 like 参数中对特殊字符使用转义字符吗?

【问题讨论】:

  • 你忘记了FROM 子句。

标签: mysql sql mysql-error-1064 sql-like


【解决方案1】:

您可以通过加倍 ('') 来转义单引号 ('):

select emp_id FROM my_table where classes like '%''XII''%';

注意:这是两个单引号,不是双引号。

【讨论】:

    【解决方案2】:

    使用双引号括起来搜索模式

    select emp_id from tableName 
    where classes like "%'XII'%";
    

    请不要将值存储为逗号分隔的字符串,这不是一个好的数据库设计实践。 See why here , esp Lasse V. Karlsen answer

    所以不是

    empid   classes
    1       'X','XI','XII'
    

    将其存储为单独的行

    empid   classes
    1       'X'
    1       'XI'
    1       'XII'
    

    【讨论】:

      猜你喜欢
      • 2012-09-04
      • 2019-01-25
      • 1970-01-01
      • 2021-03-05
      • 2011-02-11
      • 2015-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多