代码之家  ›  专栏  ›  技术社区  ›  Dharman vijay

SHOW COLUMN逃生机制

  •  2
  • Dharman vijay  · 技术社区  · 4 年前

    我有一个专栏叫 \'column 。我可以像其他列一样在SELECT语句中使用它。然而,当我尝试表演时 SHOW COLUMNS FROM myTable LIKE '\\''column' 我没有结果。我观察到,如果我对反斜杠进行双转义,它就会起作用: '\\\\''column'

    我在MariaDB控制台上测试了这一点,但在MySQL 8中也观察到了同样的行为。

    逃跑是怎么回事?我应该如何正确地转义该值,以便获取列信息?

    DB Fiddle

    1 回复  |  直到 4 年前
        1
  •  4
  •   Dharman vijay    4 年前

    来自 mysql documentation

    MySQL在字符串中使用C转义语法(例如 换行符)。如果希望LIKE字符串包含文字 ,你必须加倍。(除非 NO_BACKSLASH_ESCAPES SQL模式为 已启用,在这种情况下不使用转义符。)例如,到 搜索 \n ,将其指定为 \\n 。要搜索 \ ,将其指定为 \\\\ ; 这是因为解析器和 当模式匹配时,再次留下一个反斜杠 与匹配。