我希望通过测试其值(即COLUMN_NAME和COLUMN_NAME的价值)来获取未知TABLE_NAME的名称,但感觉被我掌握的知识困在岩石中。
下面是我现在可以创建的错误的SQL查询:
let story = UIStoryboard(name: "Main", bundle: Bundle.main)
let menuVC : MenuViewController = story.instantiateViewController(withIdentifier: "MenuViewController") as! MenuViewController
任何帮助都会得到极大的赞赏......在此先感谢
答案 0 :(得分:1)
所以你问我的建议,这里是....
在使用SQL时,您应该不惜一切代价避免使用动态SQL - 这是一个坏主意。在这种情况下,您有五个带有列的表,您想要一种简单的方法来搜索所有这些表并找到名称。如果我有此要求,我会执行以下操作 - 创建一个规范化(或取消规范化,取决于您的数据模型详细信息)的视图,然后从中进行选择。
看起来像这样:
CREATE OR REPLACE VIEW ALL_EMAIL (
TABLENAME VARCHAR(100),
EMAIL VARCHAR(100)
)
AS
SELECT 'Table1', Email
FROM Table1
UNION ALL
SELECT 'Table2', Email
FROM Table2
UNION ALL
SELECT 'Table3', Email
FROM Table3
UNION ALL
SELECT 'Table4', Email
FROM Table4
UNION ALL
SELECT 'Table5', Email
FROM Table5
现在您已拥有此视图,您可以这样做:
SELECT TABLENAME
FROM ALL_EMAIL
WHERE EMAIL = 'obston@gmail.com'
这是迄今为止解决此问题的“最佳实践”方式。
之前的回答
我想你想要这个
SELECT TABLE_NAME
FROM information_schema.column
WHERE ucase(COLUMN_NAME) = 'EMAIL'
AND TABLE_SCHEMA = 'work'
让我们说这会返回结果“sam”然后你可以像这样测试值
SELECT *
FROM sam
WHERE email = 'obston@gmail.com'