假设我有一个独特的23位数文件标识符。我想检查所有给定表中所有行的任何列中是否存在此标识符。这些表和它们的列不同。
是否有一些选择可以帮助我实现这一目标?
示例场景可以是这样的:
FileID = 534bde4c322755995941083
TableA(columnA,columnB,columnC)
TableB(columnD)
TableC(columnE,columnF)
我想只返回那些只包含这个唯一标识符的记录,仅此而已。表的数量与列类似。
是否有一些SQL语句可以帮助我解决这个问题?
我可以遍历所有记录,列和表,但这对于此类任务来说似乎是一个巨大的过度杀伤力。
答案 0 :(得分:1)
你可以像这样使用UNPIVOT ......
SELECT Vals
FROM TableA A
UNPIVOT( Vals FOR N IN (columnA, columnB, columnC)
) UP
WHERE Vals = '534bde4c322755995941083'
UNION ALL
SELECT ColumnD
FROM TableB
WHERE ColumnD = '534bde4c322755995941083'
UNION ALL
SELECT Vals
FROM TableC C
UNPIVOT( Vals FOR N IN (columnE, columnF)
) UP
WHERE Vals = '534bde4c322755995941083'
答案 1 :(得分:0)
使用phpmyadmin,点击菜单'搜索' 输入您的23位数字,选择所有表格,您将获得每张桌子上的出现次数