Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Użycie większej lub równej (>=) i mniejszej niż lub równej (<=) w instrukcjach SQL SELECT i PDO

Spróbuj trochę dostosować logikę. Podobnie jak Phoenix Wright, czasami wystarczy odwrócić różne rzeczy, aby je rozwiązać:

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

Używanie wartości jako pierwszego operandu dla BETWEEN i IN nie jest czymś, o czym wielu ludzi pomyślałoby, ale jest tak potężne;)

Co ważniejsze (i dzięki Fredowi -ii- za przypadkowe pomogło mi w zrozumieniu), min i max są nazwami funkcji. Jeśli chcesz użyć ich jako nazw kolumn, musisz zawiń je w backticki, tak jak to zrobiłem w powyższym kodzie.

Zasadniczo powinieneś zawsze umieść backticki wokół nazw tabel i kolumn. Nie zrobienie tego jest podobne do pisania $foo = bar; w PHP. Jasne, działa , ale jeśli bar stanie się stałą lub nazwą funkcji, wtedy rozpętuje się piekło.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PreparedStatement nigdy nie przekroczy limitu czasu, nawet jeśli zostanie wyraźnie ustawiony

  2. Mysql automatycznie dodaje prefiksy do pól

  3. Jaki jest dobry sposób na hermetyzację dostępu do danych za pomocą PHP/MySQL?

  4. Ruby CSV odczytuje pola wielowierszowe

  5. Jak zaktualizować tabelę za pomocą wybranej grupy w drugiej i siebie jako źródła danych w MySQL?