wordpress $ wpdb-> usermeta sort by meta_value
質問
このような「ポイント」と呼ばれるMeta_Keyに基づいて、すべてのユーザーを表示しようとしています。
$wpdb->get_col($wpdb->prepare("
SELECT user_id, meta_key = 'points', meta_value
FROM $wpdb->usermeta
ORDER BY meta_value DESC
LIMIT $limit OFFSET {$paginate->offset()}"));
ユーザーは適切に表示されますが、注文は機能していません。Meta_Valueは1から∞の数に等しくなります。それで、どうすればそれを機能させるべきですか?ありがとう。
PS:これは出力です:
Array ( [0] => 1 [1] => 2 [2] => 4 )
だから私はIDによって注文されていると信じています。
解決
SELECT user_id, meta_value FROM $wpdb->usermeta WHERE meta_key = 'points' ORDER BY CAST(meta_value AS SIGNED) DESC LIMIT
cast(署名されたmeta_value) LongtextからIntに隠れます。それは今動作します。
他のヒント
私がmysqlについて完全に間違っていない場合、あなたは meta_key = 'ポイント' 句に。クエリを書き換えます。
user_id、meta_valueを選択します
$ wpdb-> usermetaから
ここでmeta_key = 'ポイント'
Meta_Value DESCによる注文
制限$ limit offset {$ paginate-> offset()}
所属していません StackOverflow