ワイルドカード接頭辞に基づいて列を動的に選択する
データベース内では、ワイルドカード接頭辞に基づいて特定の列を選択する必要がある状況が発生する場合があります。名前に共有接頭辞が含まれています。ワイルドカードを使用した提供された MySQL クエリの試行は機能しませんが、SQL を動的に生成する解決策があります。
特定のプレフィックスで始まる列名を取得するには、次の SQL クエリを利用できます。
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'Foods' AND table_schema = 'YourDB' AND column_name LIKE 'Vegetable%'
このクエリでは、'Foods' はテーブル名、'YourDB' はデータベース スキーマ、'vegetable' は目的の列プレフィックスです。これらの値を特定のテーブル、スキーマ、プレフィックスに置き換えます。
列名を取得したら、対応するデータを選択するクエリを動的に構築できます。例:
SELECT `VegetableName1`, `VegetableName2`, `VegetableName3` FROM `Foods`
ここでは、取得された列名が「野菜名 1」、「野菜名 2」、および「野菜名 3」であるとします。これらの名前を、上記の INFORMATION_SCHEMA クエリから派生した名前に置き換えます。
このアプローチを採用すると、共有ワイルドカード プレフィックスに基づいて特定の列を効果的に選択できます。この手法は、列名が一貫した命名規則に従っているデータベースを操作する場合に役立ちます。
以上がMySQL でワイルドカードを使用したプレフィックスに基づいて列を動的に選択する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。