我刚才注意到,如果我在db字段中有一个值,例如'\\\',我希望使用SQL找到它:
SELECT * FROM table WHERE field LIKE '%xxxx%' (wildcards at both sides)
然后我不仅需要将3次'\\\\'放入sql中,而且最后还要再添加一次反斜杠。
所以我的SQL将是
SELECT * FROM table WHERE field LIKE '%\\\\\\\ \\\\\\\ \\\\\\\ \%'; -- (I put spaces only here, just for clarity)
但是如果我使用LIKE 'xxxx'
然后最后不需要那个额外的反斜杠(总共12个反斜杠而不是13个)
注意:使用utf8mb4_unicode_ci排序时会发生这种情况(如果使用默认排序规则,一切正常)
答案 0 :(得分:0)
如果你真的不需要使用反斜杠作为转义字符,那么为了让事情变得容易一些,你可以用
来禁用它。SET SESSION sql_mode = 'NO_BACKSLASH_ESCAPES';
您还可以通过在启动MySQL时在命令行中包含--sql-mode="NO_BACKSLASH_ESCAPES"
或在MySQL选项文件(sql-mode="NO_BACKSLASH_ESCAPES"
中包含my.cnf
来禁用backslash-as-escape =字符行为* nix,Windows上的my.ini
。
祝你好运。