MySQL 5.7.34 研发丢来一个SQL,说一直执行报错(SQL只保留问题部分):看似没毛病的SQL,执行时一直报错,逐个隐藏完整SQL部分内容后定位到上面的条件o.created_time < '2021-12-01 00:00:00' 存在问题 直觉就是存在特殊字符,于是把各个空格删除后再输入,仍然报错。 百思不得其解,后面把...
零宽空格字符导致SQL执行报错
MySQL 5.7.34
研发丢来一个SQL,说一直执行报错(SQL只保留问题部分):
看似没毛病的SQL,执行时一直报错,逐个隐藏完整SQL部分内容后定位到上面的条件o.created_time < '2021-12-01 00:00:00' 存在问题
直觉就是存在特殊字符,于是把各个空格删除后再输入,仍然报错。 百思不得其解,后面把SQL复制后贴到sublime看看有没有什么发现,果然,在最后的分号前面有个 0x200b 的字符,google一下。
维基百科中称 0x200b 代表零宽空格(zero-width space, ZWSP),是一种不可打印的 Unicode 字符,用于可能需要换行处。涨姿势!
遇到SQL执行不能通过报错直接判断的妖问题时,不妨将SQL贴到sublime,也许有新发现。
2022-06-06