有没有办法在 MySQL 查询中禁用转义字符?例如,对于下表:
mysql> select * from test1;
+------------------------+-------+
| name | value |
+------------------------+-------+
| C:\\media\data\temp\ | 1 |
| C:\\media\data\temp | 2 |
| /unix/media/data/temp | 3 |
| /unix/media/data/temp/ | 4 |
+------------------------+-------+
我希望以下是一个有效的查询:
mysql> select * from test1 where name='C:\\media\data\temp\';
我知道我可以改用
mysql> select * from test1 where name='C:\\\\media\\data\\temp\\';
但我正在使用 my_snprintf() 构建此查询,因此我必须使用
C:\\\\\\\\media\\\\data\\\\temp\\\\
...等等! 有没有办法为单个 MySQL 查询禁用转义字符?
最佳答案
您可以通过设置 NO_BACKSLASH_ESCAPES 来禁用反斜杠转义在 SQL 模式下:
-- save mode & disable backslashes
SET @old_sql_mode=@@sql_mode;
SET @@sql_mode=CONCAT_WS(',', @@sql_mode, 'NO_BACKSLASH_ESCAPES');
-- run the query
SELECT 'C:\\media\data\temp\';
-- enable backslashes
SET @@sql_mode=@old_sql_mode;
关于mysql - 在 MySQL 查询中禁用转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9428087/