特定の列名を持つテーブルを検索したい時の方法のsqlite3版。
Oracle,SQLServer編は以下に記載済み。
テーブルの一覧は取得できるものの...
sqlite3では、「sqlite_master」テーブルを検索することで、テーブルの一覧は取得できるものの、その中に含まれるカラムのみを検索する仕組みはないようです。
https://www.sqlite.org/faq.html#q7
どうにかこうにか、検索する方法
上述の「sqlite_master」テーブルから、テーブル作成のDDL文を取得できるので、その中にお目当てのカラム名が含まれるかを検索することで、特定の列名を持つテーブルを絞り込めそうです。
SELECT TBL_NAME ,SQL FROM SQLITE_MASTER WHERE TYPE='TABLE' AND SQL LIKE '%NAME%' ;
使用例
-- テーブルの作成 create table test_table( ID integer , NAME text , ADDRESS text ); create table test_table2( BANGO integer , NAMAE text , JUSHO text ); -- 「name(NAME)」を含むテーブルの検索 sqlite> select tbl_name,sql from sqlite_master where type='table' and sql like '%name%'; test_table|CREATE TABLE test_table( ID integer , NAME text , ADDRESS text ) -- カラム名以外も検索対象となるため、意図しない結果になってしまうことも... sqlite> select tbl_name,sql from sqlite_master where type='table' and sql like '%int%'; test_table|CREATE TABLE test_table( ID integer , NAME text , ADDRESS text ) test_table2|CREATE TABLE test_table2( BANGO integer , NAMAE text , JUSHO text )