我有多个具有相同体系结构,相同表和列名称的数据库。例外情况是,即使值相同,数据库之间的一列名称也不同。 我需要编写一个可以应用于所有数据库的通用MySQL查询。我需要解决一个问题,即数据库之间的列名可能会有所不同。
我试图在Google和以前的stackoverflow主题中查找问题,但没有一个问题可以解决我的问题。我试图用“当……那么……否则……否则……”和“如果存在……”陈述来解决问题-不起作用,或者我做错了事。
select(case when (select count(*) > 0
from information_schema.COLUMNS
where table_name = 'myTable'
and column_name = 'EUR')
then EUR
else USD
end)
from myTable
我希望有一个工作查询来检查“ EUR”列是否存在,如果确实存在,则选择它;如果不存在,则选择“ USD”。
答案 0 :(得分:0)
您可以执行以下任一操作:
我不确定您使用什么来运行查询,但是如果它是一种舒适的编程语言,则方法2基本上没有优势-除非MySQL连接具有很大的延迟,否则它不会更快。使用起来更加复杂。