質問: 'wpsc-product' and aka_v_postmeta.meta_value between 0 and 999999 order by aka_v_posts.post_date desc, aka_v_postmeta.meta_value + 0 asc 私がここでやっているのは、製品がセール中の場合はセールにmeta_valueで投稿し、それ以外の場合はmeta_key "_wpsc_price"で取得する価格に参加することです。もちろん、この部分は機能していませんand ((aka_v_postmeta.meta_key='_wpsc_special_price' and aka_v_postmeta.meta_value > '0') or aka_v_postmeta.meta_key='_wpsc_price') 製品が販売されていないときに製品を照会しますが、販売されている場合は、1つが「_wpsc_price」meta_keyで、もう1つが「_wpsc_special_price」で表示されます。1or 1は1完全に乱雑です。私はmysqlのknolidgeを少し調べて、case when条件を見つけましたが、現在の問題にそれを適用する方法を見つけませんでした。助言がありますか?もちろん、case whenなしでそれを行う方が良いでしょう
回答: ご清聴ありがとうございました。誰かが2つのpostmetaを使ってデータベースに問い合わせる必要があるなら、ここにコードがありますselect p.* , case when m1.meta_value=0 or m1.meta_value is null then m2.meta_value else m1.meta_value end meta_value from aka_v_posts p left join aka_v_postmeta m1 on p.id=m1.post_id and m1.meta_key='_wpsc_special_price' left join aka_v_postmeta m2 on p.id=m2.post_id and m2.meta_key='_wpsc_price' where post_title like '%32%' and post_type = 'wpsc-product' order by aka_v_posts.post_date desc 覚えておくべきことは(少なくとも私はそれを間違ってやっていた)あなたはそれらのmeta_valuesを選択するためにfromキーワードの前にmeta_valuesをチェックする必要があるということです。