Mysql
 sql >> Database >  >> RDS >> Mysql

Utilizzo di maggiore o uguale(>=) e minore o uguale(<=) nelle istruzioni SQL SELECT e PDO

Prova a modificare un po' la logica. Proprio come Phoenix Wright, a volte basta capovolgere le cose per risolverle:

$pk = $db->prepare("SELECT `grade` FROM `grading` WHERE ? BETWEEN `min` and `max`");
$pk->execute(array($mark));
$ind = $pk->fetch(PDO::FETCH_ASSOC);
echo $ind['grade'];

Utilizzo di un valore come primo operando per BETWEEN e IN non è qualcosa a cui molte persone penserebbero, eppure è così potente;)

Ancora più importante (e grazie a Fred -ii- per avermi aiutato accidentalmente a realizzare), min e max sono nomi di funzioni. Se vuoi usarli come nomi di colonna, devi avvolgili in backtick, come ho fatto nel mio codice sopra.

Come regola generale, dovresti sempre metti backtick attorno ai nomi di tabelle e colonne. Non farlo è come scrivere $foo = bar; in PHP. Certo, funziona , ma se bar sembra essere una costante o un nome di funzione, quindi si scatena l'inferno.