2016-05-21 11 views
0

テーブル名をその位置(行)で取得するにはどうすればよいですか?私はテーブルがたくさんある。それが動作するテーブルからこの方法を見つけるために列に例えばデータベースからの位置(行)によるテーブル名の取得

SELECT COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'database name here' 
AND TABLE_NAME = 'table name here' 
AND ORDINAL_POSITION = 2; 

私は、データベースに自分の位置(行)でテーブル名を見つけるために、このようなものが必要。

MySQLを使用しています。おかげさまで

SELECT COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'database name here' 
AND TABLE_NAME = (
    SELECT TABLE_NAME 
    FROM INFORMATION_SCHEMA.TABLES 
    WHERE TABLE_SCHEMA = 'database name here' 
    ORDER BY CREATE_TIME ASC 
    LIMIT 1 -- take one 
    OFFSET 1 -- after 1st row 
) 

:私が正しくあなたを理解していれば

+0

達成しようとしていることを明確にすることはできますか?おそらく例?この質問を理解するのは少し難しいです。 – Mureinik

+0

たとえば、データベース内の2番目または5番目のテーブル名を取得します。 –

+0

2行目を取得するのに 'LIMIT 1 OFFSET 1'を使用しないのはなぜですか? –

答えて

0

は、あなたがそのような何かをしたいよう

SET @row =0; 
SELECT TABLE_NAME 
FROM (
    SELECT @row := @row +1 AS position, TABLE_NAME 
    FROM INFORMATION_SCHEMA.TABLES 
    WHERE TABLE_SCHEMA = 'TABLE_SCHEMA here' 
)tmp 
WHERE position =5 
+0

それは動作しますが、私はテーブルの名前だけが必要です。表示する位置と名前は必要ありません。 –

+0

あなたが望むものを選択することができます SELECT TABLE_NAME FROM(...)where IN(1,5,6) –

+0

MySQLでは動作しますが、私のウェブサイトで印刷しようとすると、 'を定義する必要があります。 –

0

が見えること

SELECT position, TABLE_NAME 
FROM (

    SELECT @row := @row +1 AS position, TABLE_NAME 
    FROM INFORMATION_SCHEMA.TABLES 
    JOIN (
    SELECT @row :=0 
)r 
    WHERE TABLE_SCHEMA = 'TABLE_SCHEMA here' 
)tmp 
WHERE position =5 

のようなものとは異なるアプローチが必要これは、テーブルからすべての列を返しますそのDBの2番目のテーブルとして作成されました。

関連する問題