あなたはこれを行うことができますが、あなたはそれを行うためのどのような目的を持っていますか?
私は、ビューを使用することをお勧めします:
- ビューが作成されたときに構文が無効な構文を有することができるフィールドで SQLを保存するとは異なり、有効にする必要があります。
- デバッグや変更が容易です。たとえば、
、あなたが店にしたいクエリのいずれかを言わせている:今
CREATE VIEW prod_cat_count AS
SELECT product_category, COUNT(*) AS category_count
FROM product
GROUP BY product_category;
:
SELECT product_category, COUNT(*) AS category_count
FROM product
GROUP BY product_category;
あなたはこのクエリを定義する新しい「ビュー」オブジェクトを作成することができます「prod_cat_count」というオブジェクトがデータベースに格納されます。内部的には、データベースは「prod_cat_count」が前述のSELECTクエリと等しいことを知っています。ビューが作成されると、データベースは構文を検証します(すべての列が存在するかどうかをチェックし、GROUP BYを忘れていないかどうかを確認します)。
このデータを取得する/ (例えば、SQLまたはアプリケーションコードで)このステートメントを実行することができます:
SELECT product_category, category_count
FROM prod_cat_count;
あなたは、あなたが製品カテゴリがカウントされ、ビューを調整することができる方法を変更することを決定した場合:
SELECT product_category, COUNT(*) AS category_count
FROM product
GROUP BY product_category
ORDER BY product_category;
希望に役立ちます!
XY問題の教科書の例です。なぜあなたはそのような奇妙な混乱を望んでいますか? –
私は単純なJSONデータを代わりに保存したいとしましょう。このデータは一定ではなく、いくつかの他のテーブルの内容に依存しているため、クエリでよりうまく処理できると思っていました。問題は、各行が異なる方法でテーブルに依存することです。つまり、すべての行を処理するための値をバインドするためのグローバルクエリを1つ書くだけではなく、それぞれが独自の行を処理する一連のクエリが必要です。これにはより良い解決策がありますか、あるいは私はちょうど悪いデザインをしていますか?私はここでメタデータを管理していることに言及する価値はあると思います。 – StrikeAgainst
これは確かに悪い設計です。より良い実装のため、情報の不足のために何も示唆することはできません。あなたがちょうど言ったことから、私はデータベース構造にも欠陥があると推測することができます。データを正規化しましたか? NoSQLソリューションを検討しましたか?たとえば、Mongoは実際にjsonを格納します。しかし、私は再び、あなたはXYの問題を尋ねています。これらのマイクロジャンクションなどが必要な初期のアプリケーションを記述します。より良いコメントではなく、堅実でよく考えられた質問 –