SELECT max(meta_value) FROM wp_postmeta WHERE meta_key='price'… cesse de fonctionner lorsque la valeur est supérieure à 999

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

Question

Aperçu:Je n'essaie pas de renvoyer un message.Je veux simplement la valeur la plus élevée pour une méta_valeur particulière dans tous les messages...juste la valeur elle-même.

Détails:J'ai ajouté un "prix" méta_key personnalisé à tous mes messages.La valeur est toujours un nombre entier (pas de décimales ni de caractères non numériques).J'essaie de faire une requête qui renvoie la méta_valeur la plus élevée/la plus grande/maximale associée à cette méta_clé particulière.

Code du 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;
}

Résultats des buggys:Au début, je pensais que le code ci-dessus fonctionnait, car c'est le cas si toutes les méta_valeurs sont inférieures à 999.J'ai vite découvert que si la méta_valeur est supérieure à 999, elle est ignorée.Donc, vraiment, le code ci-dessus me donne le maximum (meta_value) pour les méta_valeurs inférieures à 1000.

Plaidoyer à la communauté:Évidemment, je ne sais pas pourquoi cela échoue, mais j'ai le sentiment que cela a quelque chose à voir avec la façon dont WP stocke la valeur - peut-être lié à son type de données ?Ou peut-être que je ne devrais pas utiliser $wpdb->get_var().Tout conseil sera grandement apprécié.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top