Seleziona max (meta_value) da wp_postmeta dove meta_key = 'price' ... smette di funzionare quando il valore è superiore a 999

wordpress.stackexchange https://wordpress.stackexchange.com/questions/54794

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a wordpress.stackexchange
scroll top