SELECT * FROM USER WHERE orgid IN (SELECT orgid FROM org WHERE `name` LIKE '%xxx%' )
user 表有 orgid 字段, org 表没有 orgid 字段,但是上面的查询不会报错!!!
而下面的查询会报错:
原因是,user 表中有个 orgid 字段,如果我们把 第一个查询中的 orgid 改成一个 user 表没有的字段,他就会报错了:
所以 MySQL 的语法解析器存在bug。
绕过这个问题的办法:
子查询里面需要带上 表名前置,指定是查询那个表的字段。
正确的SQL: