14

特定のテーブルから列名を選択しようとしています。テーブル名は「98673」のようになっています。

だから私はこれを使用しています:

SELECT 
    column_name
FROM 
    information_schema.columns
WHERE 
    table_name='lime_survey_98673'
    AND column_name LIKE '98673'

ただし、これによってデータが生成されることはありません。そこに「98673Blah」の列名がありますが。

私は何か間違ったことをしているに違いないことを知っていますが、何ですか?

4

7 に答える 7

16

LIKEの場合、ワイルドカード%を追加する必要があるため、次のようになります。

SELECT 
    column_name
FROM 
    information_schema.columns
WHERE 
    table_name='lime_survey_98673'
    AND column_name LIKE '98673%'
于 2013-03-27T11:07:33.570 に答える
4

使用する%

SELECT column_name
FROM information_schema.columns
WHERE table_name='lime_survey_98673'
AND column_name LIKE '%98673%'

%ワイルドカードを示し、column_nameを含むものを返します98673

于 2013-03-27T11:06:56.347 に答える
2

AND column_name LIKE '98673'本当に必要な場合を除いて、パーツなしで試してください。

SELECT column_name
FROM information_schema.columns
WHERE table_name LIKE '%lime_survey_98673%'
-- AND column_name LIKE '%98673%'  // only if needed

詳細については、次のドキュメントを参照してください。

于 2013-03-27T11:08:14.027 に答える
1

追加する必要があります%

SELECT 
    column_name
FROM 
    information_schema.columns
WHERE 
    table_name='lime_survey_98673'
    AND column_name LIKE '%98673%'

これは、が含まれていることを意味しcolumn_nameます98673

于 2013-03-27T11:07:08.743 に答える
1

この方法でもそれを行うことができます:

show columns from lime_survey_98673 like '%98673%';
于 2017-11-16T09:30:39.437 に答える
0

テーブル名もワイルドカードを追加する必要があると思います。

SELECT 
    column_name,
    table_name
FROM 
    information_schema.columns
WHERE
    schema_name = 'db_name' 
    AND table_name='%98673%'
    AND column_name LIKE '%98673%'

このようにして、すべてのテーブルの列名リストを取得できます。列名には、特定のデータベースまたはスキーマからの「98673」のようなテキストが含まれます。

于 2015-12-03T07:52:58.980 に答える
0

このクエリを使用する

SHOW COLUMNS FROM `table_name` LIKE 'coloums_name';
于 2018-02-03T11:16:00.707 に答える