今天执行mysql语句时,出现错误:
mysql> select * from saas_video_req_list where organization="RlokQwRlVjUrTUlkIqOg" limit 1;
ERROR 1054 (42S22): Unknown column 'RlokQwRlVjUrTUlkIqOg' in 'where clause'
在今天以前,在这个库中执行这个命令是可以的。
后来发现,有人在今天修改了mysql的model,
查看现在的mysql model发现:
mysql> select @@sql_mode;
+-------------------------------------------------------------+
| @@sql_mode |
+-------------------------------------------------------------+
| REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI |
+-------------------------------------------------------------+
1 row in set (0.00 sec)
今天以前的model应该是NO_ENGINE_SUBSTITUTION这个模式。
将模式设置回来
mysql> set sql_mode='NO_ENGINE_SUBSTITUTION';
Query OK, 0 rows affected (0.00 sec)
造成这个现象的原因:
使用ANSI模式,会对数据进行校验,导致双引号产生了错误,单引号是mysql的标准语法
ANSI
:更改语法和行为,使其更符合标准SQL