SELECT * FROM USER WHERE orgid IN (SELECT orgid FROM org WHERE `name` LIKE '%xxx%' ) 

 user 表有 orgid 字段, org 表没有 orgid 字段,但是上面的查询不会报错!!!

而下面的查询会报错:

MySQL的语法解析 bug 一例

 原因是,user 表中有个 orgid 字段,如果我们把 第一个查询中的 orgid 改成一个 user 表没有的字段,他就会报错了:

MySQL的语法解析 bug 一例

所以 MySQL 的语法解析器存在bug。

绕过这个问题的办法:

MySQL的语法解析 bug 一例

子查询里面需要带上 表名前置,指定是查询那个表的字段。

正确的SQL:

MySQL的语法解析 bug 一例

 

相关文章:

  • 2022-12-23
  • 2022-01-05
  • 2022-02-07
  • 2022-12-23
  • 2022-03-05
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-29
  • 2022-12-23
  • 2022-12-23
  • 2021-04-15
相关资源
相似解决方案