データベースには何千ものテーブルがあります。一部の名前は_History
で終わります。
例えば :
abc_History
bcd_History
123_History
名前が_History
で終わるすべてのテーブルを検索するにはどうすればよいですか。
何かのようなもの:
SELECT
table_name
FROM sys.tables WHERE table_name LIKE '_History%'
そして
error : Invalid column name 'table_name'.
これを試して:
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.tables
WHERE TABLE_NAME LIKE '%_History'
[〜#〜]または[〜#〜]
SELECT name
FROM sys.tables
WHERE name LIKE '%_History'
@ Saharsh-shahに感謝します。
同じクエリですべての列名を含むテーブル名を取得するには、これを使用します。
SELECT
`TABLE_NAME`,
group_concat(`COLUMN_NAME` separator ',') AS `COLUMNS`
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_NAME` IN(
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.tables
WHERE `TABLE_NAME` LIKE '%_History'
)
GROUP BY `TABLE_NAME`
あなたはそれを多次元PHP配列で非常に簡単に次のようにしてプッシュすることができます:
$tables['columns'] = explode(',', $tables['columns']);
それがいくつかを助けることを願っています。