sql >> Database >  >> RDS >> Mysql

Gebruik van groter dan of gelijk aan(>=) en kleiner dan of gelijk aan(<=) in SQL SELECT-instructies en PDO

Probeer de logica een beetje aan te passen. Net als Phoenix Wright, is het soms voldoende om dingen om te draaien om ze op te lossen:

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

Een waarde gebruiken als de eerste operand voor BETWEEN en IN is niet iets waar veel mensen aan zouden denken, maar het is zo krachtig;)

Wat nog belangrijker is (en dank aan Fred -ii- voor het per ongeluk helpen realiseren), min en max zijn functienamen. Als u ze als kolomnaam wilt gebruiken, moet wikkel ze in backticks, zoals ik heb gedaan in mijn bovenstaande code.

Als algemene regel moet u altijd zet backticks rond uw tabel- en kolomnamen. Dit niet doen staat gelijk aan het schrijven van $foo = bar; in PHP. Natuurlijk, het werkt , maar als bar toevallig een constante of functienaam is, dan breekt de hel los.




  1. Go with SQL Server-stuurprogramma kan geen verbinding maken, inloggen mislukt

  2. waarde invoegen van html select-formulier in mysql-database

  3. Wat is de beste manier om een ​​datetime-veld te vergelijken met datumvelden?

  4. classNotFound Uitzondering bij gebruik van JDBC voor MYSQL op Tomcat in eclipse