sql >> Base de Datos >  >> RDS >> Mysql

Uso de mayor o igual (>=) y menor o igual (<=) en declaraciones SQL SELECT y PDO

Intenta ajustar un poco la lógica. Al igual que Phoenix Wright, a veces basta con cambiar las cosas para resolverlas:

$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'];

Usar un valor como primer operando para BETWEEN y IN no es algo en lo que mucha gente pensaría, pero es tan poderoso;)

Más importante aún (y gracias a Fred -ii- por ayudarme accidentalmente a darme cuenta), min y max son nombres de funciones. Si desea utilizarlos como nombres de columna, debe envuélvalos en acentos graves, como lo he hecho en mi código anterior.

Como regla general, debe siempre ponga acentos graves alrededor de los nombres de sus tablas y columnas. No hacerlo es como escribir $foo = bar; en PHP. Claro, funcionará , pero si bar pasa a ser un nombre de función o constante, entonces se desata el infierno.