我有一个名为config
的数据库。该表可能有一个config_cstm
表,该表与id与配置表相关。
我想知道 - 有没有办法在一个简单的select语句中动态检查这个表的存在?
换句话说,比如:
select *
from config
(IF EXISTS config_cstm THEN
LEFT OUTER JOIN config_cstm ON config.id = config_cstm.id_c)
我知道如何检查PHP中是否存在现有表。我想在一个MySQL语句中完成所有这些。
有什么建议吗?
答案 0 :(得分:1)
如果您使用的是MySQL 5或更高版本,则可以使用CASE进行此类条件功能。
然而,恕我直言,如果你使用的是php,你应该在php中进行,而不是试图将其全部用于SQL查询。它通常效率不高。答案 1 :(得分:-1)
您在谈论“我的数据库”,但根据我的经验,通常在给定的数据库中,表存在或不存在。您是否尝试将同一查询应用于多个并行数据库?
如果是这样,我会认为可能会出现其他更重要的结构差异,正如撒旦Puppy所说,用PHP或其他pre-SQL语言构建查询要好几英里,而不是尝试准备查询这将适合所有模具。