MySQL LIKE 语句报错:near '%': syntax error 解决方法

在使用 Docker 查询日志时,遇到如下 SQL 语句报错:

select count(1) from docker_log where 1=1 and level = 1 and create_time >= 1689552000 and end_time <= 1689724800 and content like %werewr%

错误信息:

docker_serv ERROR 2023-07-19 16:40:34.370813 /data/wufan/docker_serv/logs/dao/LogDb.go:45 near '%': syntax error
docker_serv ERROR 2023-07-19 16:40:34.370835 /data/wufan/docker_serv/logs/service/Logs.go:46 near '%': syntax error
docker_serv ERROR 2023-07-19 16:40:34.370854 /data/wufan/docker_serv/router/LogsController.go:50 near '%': syntax error

原因分析:

这个错误是因为在 SQL 语句中使用了模糊匹配的 LIKE 操作符,但是未正确使用通配符 '%werewr%'。在 MySQL 中,使用 LIKE 进行模糊查询时,通配符需要包含在单引号中。

解决方法:

将通配符放在单引号内,正确的 SQL 语句如下:

SELECT COUNT(1) 
FROM docker_log 
WHERE 1=1 
    AND level = 1 
    AND create_time >= 1689552000 
    AND end_time <= 1689724800 
    AND content LIKE '%werewr%'

总结:

在使用 MySQL LIKE 操作符进行模糊查询时,务必将通配符包含在单引号内,以避免出现语法错误。

MySQL LIKE 语句报错:near '%': syntax error 解决方法

原文地址: http://www.cveoy.top/t/topic/fPFi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录