mysql数据库,字符串使用双引号““导致报错,使用单引号‘‘不报错,Unknown column ‘user-test‘ in ‘where clause‘

文章目录

  • 一、完整报错
  • 二、报错数据
  • 三、报错原因
  • 四、解决方式
    • 1、更改执行sql
    • 2、更改sql数据校验模式(改为默认校验)

一、完整报错

> 1054 - Unknown column 'user-test' in 'where clause'

二、报错数据

SELECT *
FROM config_info
WHERE config_info.data_id="user-test"

mysql数据库,字符串使用双引号““导致报错,使用单引号‘‘不报错,Unknown column ‘user-test‘ in ‘where clause‘_第1张图片

三、报错原因

  • 因为sql_mode里面有 ANSI_QUOTES,这个校验模式。所以导致报错
  • ANSI_QUOTES:不能用双引号来引用字符串,因为它被解释为识别符
  • 更改sql_mode详细过程,点击跳转

四、解决方式

1、更改执行sql

SELECT *
FROM config_info
WHERE config_info.data_id='user-test'	

mysql数据库,字符串使用双引号““导致报错,使用单引号‘‘不报错,Unknown column ‘user-test‘ in ‘where clause‘_第2张图片

2、更改sql数据校验模式(改为默认校验)

SET GLOBAL sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
SET SESSION sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

mysql数据库,字符串使用双引号““导致报错,使用单引号‘‘不报错,Unknown column ‘user-test‘ in ‘where clause‘_第3张图片

你可能感兴趣的:(其他,数据库,mysql,android)