Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Uso de maior ou igual (>=) e menor ou igual (<=) em instruções SQL SELECT e PDO


Tente ajustar um pouco a lógica. Assim como Phoenix Wright, às vezes basta inverter as coisas para resolvê-las:
$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'];

Usando um valor como o primeiro operando para BETWEEN e IN não é algo que muitas pessoas pensariam, mas é tão poderoso;)

Mais importante (e obrigado a Fred -ii- por acidentalmente me ajudar a perceber), min e max são nomes de funções. Se você quiser usá-los como nomes de coluna, você deve envolvê-los em backticks, como fiz no meu código acima.

Como regra geral, você deve sempre coloque acentos graves em torno de seus nomes de tabela e coluna. Não fazer isso é como escrever $foo = bar; em PHP. Claro, vai funcionar , mas se bar acontece de ser uma constante ou nome de função, então todo o inferno se solta.