sql >> Databasteknik >  >> RDS >> Mysql

Användning av större än eller lika med (>=) och mindre än eller lika med (<=) i SQL SELECT-satser och PDO

Försök att justera logiken lite. Precis som Phoenix Wright, ibland allt som krävs för att vända på saker och ting för att lösa dem:

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

Använder ett värde som den första operanden för BETWEEN och IN är inget många skulle tänka på, men det är så kraftfullt;)

Ännu viktigare (och tack till Fred -ii- för att han av misstag hjälpte mig att inse), min och max är funktionsnamn. Om du vill använda dem som kolumnnamn måste du linda in dem i backticks, som jag har gjort i min kod ovan.

Som en allmän regel bör du alltid sätt backticks runt dina tabell- och kolumnnamn. Att inte göra det är ungefär som att skriva $foo = bar; i PHP. Visst, det kommer att fungera , men om bar råkar vara ett konstant- eller funktionsnamn så bryter helvetet löst.




  1. enkel sql-fråga, kombinera resultat och dividera

  2. Sortering Null sist

  3. Problem med att skapa MySQL-fråga i Symfony som innehåller JOIN och RAND()

  4. Hur man kombinerar två uppdateringsfrågor med olika where-villkor