mysql 修改sql_mode导致select字符串出现问题

今天执行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

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值