次のような列を持つテーブル(ユーザー)があります。
userid name email system_photo personal_photo photo_select
photo_select
2つの値(1または0)を持つことができます。私が選択したいsystem_photo
かpersonal_photo
に応じphoto_select
た値。場合photo_select
され1
、その後personal_photo
に選択する必要があり、そうでない場合がphoto_select
され0
、その後system_photo
に選択する必要があります。
system_photo
価値は別のサービスから来ています。ユーザーがその写真を気に入らない場合は、新しい写真をアップロードできます。別の日には、2枚の写真を切り替えることができます。
最初に3つの列すべてを選択し、コードのビューセクションに次のように記述しました。
if($user->photo_select === '0')
echo $user->system_photo;
else if($user->photo_select === '1')
echo $user->personal_photo;
しかし、それから私はこれが費用のかかる方法だと思いました。そして、モデルセクションで写真の列(system_photo
またはpersonal_photo
)を1つだけ選択することにしました。これSELECT
を達成するためのMySQLステートメントは何ですか?
次のことができます。
select *, if(photo_select = 0, system_photo,personal_photo) as photo
from users
クエリでifステートメントを使用して、その真偽に基づいて1つの列または他の列を選択します。最後に、呼び出したい名前としてキャストします。写真
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加