sql - 如何在类似字符串的sql中转义多个字符?

标签 sql escaping

可以像这样对单个字符进行转义:

select * from tableName where columnName like 'CU_C' escape '_';

我需要转义多个字符(“%”和“_”):
select * from tableName where columnName like 'C%U_C' escape ??;

如何转义多个字符?

最佳答案

您误解了escape的含义:它使您可以定义一个字符,这样当您将其放在另一个字符之前时,该另一个字符将被字面解释,而不是作为元字符。您只需要一个这样的转义字符:您可以使用它来转义任何元字符。

在下面的示例中,我将'#'用作我的转义字符:

select * from tableName where columnName like 'C#%U#_C' escape '#'

这将尝试匹配C%U_C字符串,其中'%''_'都是按字面意义解释的,而不是由任何字符或任何单个字符组成的序列。

关于sql - 如何在类似字符串的sql中转义多个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18093403/

相关文章:

java - Sqlite约束异常错误

c# - 为什么每次单击 C# 中的下一条记录按钮时数据表行数都会加倍?

regex - 如何在 Apache `/` 指令的正则表达式中转义斜杠符号 `<If>`?

javascript - 在数据表变量中转义单引号

php - 使用所见即所得编辑器和 PHP 转义方法

mysql - 查找源id只有一个dest id的行

sql - 我怎样才能只选择不在另一种行的一周内的行?

sql - 如何在 Sql 中以特定方式格式化字符串

c - 为什么百分比字符在 C 中没有用反斜杠转义?

javascript - 三层嵌套引号的问题