sql >> Databasteknik >  >> RDS >> Mysql

Dynamiskt skapad WHERE-klausul PHP/MySQL

Istället för att skapa en where-sträng skulle jag först skapa en array med where-delar.

$whereParts = array();
foreach($aColumns as $i => $column)
{
    <logic goes here>
    $whereParts[] = 'genre_id IN (1,3,5,6)'; // sample :)
}

$where = 'WHERE ' . implode(' OR ', $whereParts); // note the spaces around OR

Då är det enkelt att ersätta ' OR ' med ' AND '

Det är lätt att tillåta användare att välja mellan OCH och ELLER för alla där delar, men inte om du vill göra det för varje enskild artikel. Det är också en logisk fråga. När användaren anger a OR b AND c , skulle han vilja ha (a OR b) AND c eller a OR (b AND c) ?




  1. Summa tidslängd efter platsändring

  2. postgres kolumn alias problem

  3. Ändra färger på Google-diagramstapeln när datatabellinmatningen kommer från JSON-data från servern

  4. org.postgresql.util.PSQLEUndantag:Stora objekt får inte användas i auto-commit-läge