2012-02-12 3 views
4

私は37のテーブルを持つbbsというデータベースを持っています。 これらのテーブルで、列名の長さが5より大きいすべての列を探したいとします。列名の長さが5より大きい列をすべて見つけるにはどうすればよいですか?

mysql> show tables; 
+---------------------+ 
| Tables_in_rails_bb | 
+---------------------+ 
| articles   | 
| articles_categories | 
| bookmarks   | 
| categories   | 
| comments   | 
| drafts    | 
| extension_groups | 
| extensions   | 
| forum_tracks  | 
| forums    | 
| icon_items   | 
| icons    | 
| levels    | 
| management_groups | 
| management_logs  | 
| message_folders  | 
| message_tos   | 
| messages   | 
| moderators   | 
| posts    | 
| replies    | 
| reports    | 
| roles    | 
| roles_users   | 
| schema_migrations | 
| sessions   | 
| smiles    | 
| subscribes   | 
| system_configs  | 
| topic_tracks  | 
| topics    | 
| upload_files  | 
| users    | 
| users_forums  | 
| users_topics  | 
| warnings   | 
| word_replacements | 
+---------------------+ 
37 rows in set (0.25 sec) 

どのようにSQLを記述するには?

+0

下記の私の解決策を試してみてください。あなたが探していることを願っています。 –

+1

+1のレール: –

+0

はい、そのレールbbsアプリ!私はいくつかの列に接頭辞を追加したいが、私はどちらの方法が最善であるかを確認する必要がありますか? dbを変更するか、自分のコードを変更してください。あなたの返事をありがとう^ _ ^ – Neo

答えて

1

ここで変更するのはデータベース名です(Table_NameColumn_Nameは固定されています)。これを試してみてください:

SELECT Table_Name, Column_Name 
FROM information_schema.columns 
WHERE table_schema = 'databaseName' -- <= Database Name Here 
HAVING CHAR_LENGTH(COLUMN_NAME) > 5 
ORDER BY Table_Name, Column_Name 

か、また、すべてのフィールド

SELECT * 
FROM information_schema.columns 
WHERE table_schema = 'databaseName' -- <= Database Name Here 
HAVING CHAR_LENGTH(COLUMN_NAME) > 5 
ORDER BY Table_Name, Column_Name 
2
SELECT * 
    FROM INFORMATION_SCHEMA.COLUMNS 
    WHERE CHAR_LENGTH(COLUMN_NAME) > 5 
     AND TABLE_SCHEMA='YourDatabase'; 

ないテストを選択することができます! Found this questionとクエリを編集しました。このような何かは、少なくともあなただけのINFORMATION_SCHEMAデータベースを照会:)

1

を始める必要があります。

mysql> connect information_schema; 
mysql> select table_name, column_name from columns where table_schema = 'bbs' and char_length(column_name) > 5; 

は、CHAR_LENGTH(strが)長さ(文字列)しながら、文字の量が持っているSTRあなたを与えることを考慮してくださいstrのバイト単位のサイズになります。

関連する問題