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

Brug af større end eller lig med (>=) og mindre end eller lig med (<=) i SQL SELECT-sætninger og PDO

Prøv at justere logikken lidt. Ligesom Phoenix Wright er der nogle gange alt, hvad det kræver at vende tingene rundt for at løse 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'];

Brug af en værdi som den første operand for BETWEEN og IN er ikke noget mange mennesker ville komme i tanke om, men alligevel er det så kraftfuldt;)

Endnu vigtigere (og tak til Fred -ii- for ved et uheld hjalp mig med at indse), min og max er funktionsnavne. Hvis du vil bruge dem som kolonnenavne, skal du skal pak dem ind i backticks, som jeg har gjort i min kode ovenfor.

Som en generel regel bør du altid sæt backticks omkring dine tabel- og kolonnenavne. Hvis du ikke gør det, svarer det til at skrive $foo = bar; i PHP. Selvfølgelig virker det , men hvis bar tilfældigvis er et konstant- eller funktionsnavn, så bryder helvede løs.




  1. ORA-28040:Ingen matchende godkendelsesprotokol undtagelse

  2. Hvordan MID() virker i MariaDB

  3. Få timedata med huller fra midnat til nu

  4. MySQL:ÆNDRE TABEL, hvis kolonne ikke eksisterer