フィールドタイプごとにテーブルデータを取得または更新することはできますか?可能であれば、サンプルコードを教えてください。
はい、それを達成することは非常に可能ですが、独自のクエリでは不可能です!
まず、メタデータを探す場所を知る必要があります。この種の情報は、information_schema
と呼ばれる内部mysqlデータベースに格納されます。このデータベースは、データベースエンティティを含むあらゆる種類のクエリを実行するたびにMysqlによって内部的にのみ使用されます。 。ここには、データベースのすべてのテーブル、列、特権、ユーザー、トリガーに関するあらゆる種類のメタ情報があります。
show tables from information_schema;
あなたの問題について私が知っている解決策には、2つのクエリが含まれます。最初のものは、指定されたdata_typeを持つ列のリストを返します(データベースと、検索するテーブルも指定できます)。
select columns.column_name from
information_schema.schemata
,information_schema.tables
,information_schema.columns
where
tables.table_schema = schemata.schema_name
and tables.table_name = columns.table_name
and schemata.schema_name = 'your_database_name'
and tables.table_name = 'your_table_name'
and columns.data_type = 'the_field's_data_type_you_want_to_filter'
-- + any other filter you find useful
必要なプロパティ(特定の場合は特定のデータ型)を満たす列名のリストを使用すると、そのフィールドのリストからデータを選択または更新するための2次クエリを実行するだけで済みます。
MySqlのドキュメントを検索しましたが、残念ながら、SQLだけでフィールドの動的リストを選択または更新する方法がないため、2次生成クエリが必要です。
お役に立てれば。