Mysql 检查where中是否存在表

Mysql 检查where中是否存在表,mysql,exists,Mysql,Exists,此查询生成错误,因为表2不存在: Select * FROM table WHERE table2.id IS NOT NULL 在对id进行检查之前,检查表2是否有类似的内容 Select * FROM table WHERE (EXIST(table2) AND table2.id IS NOT NULL) or not EXIST(table2) 您需要查询此系统表: SELECT table_name FROM information_schema.tables WHERE tabl

此查询生成错误,因为表2不存在:

Select * FROM table WHERE table2.id IS NOT NULL
在对id进行检查之前,检查表2是否有类似的内容

Select * FROM table WHERE (EXIST(table2) AND table2.id IS NOT NULL) or not EXIST(table2)

您需要查询此系统表:

SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'yourdatabasename'
AND table_name = 'table2';

如果返回一行,那么您的表就存在。

我不相信标准SQL中有任何命令或函数可以做到这一点。在发出SQL查询之前,您可以查询数据字典以检查表是否存在,如下所示:

从信息_SCHEMA.tables中选择表_name,其中表_name='xxx'


但是,我不认为这可以在一条SQL语句中完成。

我的SQL可能已经过时了,但是如果您没有将“table2”包含在查询的FROM部分,您如何引用它呢?