Seleziona max (meta_value) da wp_postmeta dove meta_key = 'price' ... smette di funzionare quando il valore è superiore a 999
-
02-11-2019 - |
Domanda
Panoramica: Non sto cercando di restituire un post. Voglio semplicemente il singolo valore più alto per un particolare meta_value in tutti i post ... solo il valore stesso.
Particolari: Ho aggiunto un "prezzo" META_KEY personalizzato a tutti i miei post. Il valore è sempre un numero intero (nessun decimali o caratteri non numerici). Sto cercando di fare una query che restituisce il meta_value più alto / più grande / massimo associato a questo particolare meta_key.
Codice buggy
function max_meta_value(){
global $wpdb;
$query = "SELECT max(meta_value) FROM wp_postmeta WHERE meta_key='price'";
$the_max = $wpdb->get_var($query);
return $the_max;
}
Risultati del buggy: All'inizio ho pensato che il codice sopra funzionasse, perché lo fa se tutti i meta_valori sono inferiori a 999. Ho presto scoperto che se il meta_value è maggiore di 999, viene ignorato. Quindi davvero il codice sopra mi sta dando il massimo (meta_value) per meta_valueri inferiori a 1000.
Appello alla comunità: Ovviamente non so perché fallisca, ma ho la sensazione che abbia qualcosa a che fare con il modo in cui WP memorizza il valore - forse il suo tipo di dati correlato? O forse non dovrei usare $ wpdb-> get_var (). Qualsiasi guida sarà molto apprezzata.
Nessuna soluzione corretta