で感謝だから、私の提案を求めたとここにあります....
SQLを使って作業するときは、動的SQLを絶対に避けるべきです。悪い考えです。この場合、5つの表に1つの列があり、簡単にすべてを検索して名前を見つける必要があります。この要件がある場合は、次のようにします。データモデルの詳細に応じて正規化する(または標準化を解除する)ビューを作成し、そこから選択します。
それは次のようになります。今、あなたはちょうどこの行うことができます。このビューがあること
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 = '[email protected]'
これは、はるかにこの問題を解決するための「ベストプラクティス」の方法ですが。
前に答え
私はあなたがこの
SELECT TABLE_NAME
FROM information_schema.column
WHERE ucase(COLUMN_NAME) = 'EMAIL'
AND TABLE_SCHEMA = 'work'
は、あなたがこの
SELECT *
FROM sam
WHERE email = '[email protected]'
のような値をテストすることができ、 "SAM" これが結果を返す言うことができますしたいと思います列には通常、電子メールアドレス – Hogan
がありません。 emailという名前の列に特定の値が存在するかどうかを確認します。 – Hogan
私は私のクライアントの電子メールアドレスを格納するために使用するemailという列を作成しましたが、それは私の間違っていますか?@Hogan – keldimkpa