SELECT max(meta_value) FROM wp_postmeta WHERE meta_key='price'… cesse de fonctionner lorsque la valeur est supérieure à 999
-
02-11-2019 - |
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