ので、私は選択クエリ内のすべての列の名前を指定することはできません私は This referenceに示すように、選択クエリの結果に列を交換しようとしていますが、例とは異なり、私はテーブル内の多くの列を持っています。選択クエリで特定の列データを置き換えますか?
私は同じことを達成するためにいくつかの方法を試してみましたが、どれも効果的なようです。
select
*, (REPLACE(REPLACE(role_id,1,"admin"),2,"moderator") AS role_id
from user;
またはここ
Select *
from user
where role_id = (select REPLACE(role_id,1,"admin") as role_id from user;
は、我々はそれが異なるIDに対応する値を保持する別のテーブルすなわち、別のテーブルからデータを取得する必要があるかもしれませんが、特定のインスタンス化でROLE_IDのために2つだけの可能な値をとりますそれら。
だから、単一のクエリで、以下の条件を達成するための方法がある: -
- いくつかのフィールドの値を置き換えるために、すべての列の名前を書いて多くの列を想定して(選択クエリから返される個別ではありません可能性)
- 単一テーブル内の異なる列の異なるテーブルからの置換値を取得する。
私は1つのクエリで上記の条件を実装する必要がありますが、変更はデータベースに存在してはならず、選択クエリの結果のみを最適化する必要があります。
すでに以下を参照していますが、手助けができませんでした。
私は実装言語としてエンジンやPHPなどのphpMyAdminを使用しています。
支援するためのおかげで、私はケース/とき、あまりにも試してみましたが、私は様々な表からあまりにも動的に交換用のデータをフェッチする必要があるとして、このように、これはあまり役に立たないが、また、PHPの配列を実装するとの問題が原因で、結果の使用するということです多くのプラットフォームでは、SQLクエリ自体を最適化する必要があります。 – OshoParth
あなたが提供した情報に基づいて質問に回答しました。 – e4c5
最も最適化された解決策は、データベースに何の負荷もかけないので、php配列を行うことです。しかし、ロールが含まれているテーブルのジョインは、テーブルのインデックスが適切であれば効率的です。 – e4c5