SQL SELECT ステートメントからフィールド リストを分割するための正規表現を探しています。
クエリの残りの部分からフィールド リストを抽出したので、次のような文字列が残ります。
field1,field2,field3,CONCAT(field1,field2) AS concatted,IF(field1 = field2,field3,field4) AS logic
コンマが括弧内に表示されない場合、論理的なアプローチはコンマで文字列を分割することだと思うので、それを行うための正しい正規表現を見つける必要があります...?
私が達成しようとしていることの最終結果は、テーブルから直接選択されたように見えるフィールドと、SQL 式から作成されたフィールドを見つけて、WHERE 句または HAVING 句を使用してそれらをフィルタリングするかどうかを後で決定できるようにすることです。 .
フィールドのリストを取得したら、「AS」キーワードの存在を確認できます。これは完全ではありませんが、SQL の記述方法で機能するはずです。
(式ではないがエイリアスが設定されているフィールドと、エイリアスが設定されていないか、エイリアスが設定されている可能性があるが「AS」を使用しない式を区別する別の方法を提案するためのボーナス ポイント)