2017-01-19 14 views
1

クエリでは可能ですが、私にはわかりません。テーブルの値を動的に選択

はのは、私は次の表を持っているとしましょう:(さんはそれを呼ぶことにしましょう:「テーブル」)

id | table 
--------- 
1 | Table1 
2 | Table2 
3 | Table3 

私は行の内部動的テーブル名からデータを選択するクエリを作成したいと思います。以下のような

何か:期待

select * from (select table from tables where id = 1) 

は、このクエリの結果では、「表1」からすべての行と列です。

これはMySQL経由で行うことができますか?

これについての情報が見つかりませんでしたので、おそらく何か助けになります。

ありがとうございます!

+0

この種の問題は、しばしば設計が不良であることを示します。 – Strawberry

+0

私はあなたの質問を理解している場合、あなたはxテーブルと別のテーブルを持っています。 私はあなたがこの簡単なレッスンを読むべきだと思います - > http://www.w3schools.com/sql/sql_join_inner.asp – Idoshhh

+0

ここにBLOBデータ型が役立つでしょうか? –

答えて

2

これを実現するために、stored procedureの中にprepared statementを作成できます。

また、@strawberryはコメントで言うと、これはデザインが悪いことの兆候です。解決することができたとしても、おそらくデザインを考え直すべきです。

+0

これは本当に悪いデザインである可能性は間違いありませんが、既存の構造化されていないデータベースを維持することに時間を費やすことがあります...私はOPのために願っていますが、そうではありませんが、確かに可能です。 – user2366842

0

おそらく、あなたは1つのクエリでこれを行うカント、そしてあなたは、この2つのステップで行わ取得するには、サーバー側の言語を必要とする

最初のセーブ

select table from tables where id = 1 

その後、このクエリを実行することによって、テーブルの名前を取得あなたが探しているテーブルの名前を含む$tab変数を統合してメインクエリを実行できるようになりました。これは、実行する明確なMySQLクエリを提供します

select * from $tab 
+0

あなたは、バックエンド(またはバックエンドのプログラミング言語)上でphpの設定が動作することを前提としています。そうかもしれないし、そうでないかもしれないので、この答えはOPのために働くかもしれません。 – user2366842