sql >> Databáze >  >> RDS >> Mysql

Dynamicky vytvořená klauzule WHERE PHP/MySQL

Místo vytvoření řetězce where bych nejprve vytvořil pole s částmi where.

$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

Pak je snadné nahradit ' OR ' s ' AND '

Je snadné umožnit uživatelům vybrat si mezi AND a OR pro všechny součásti, ale ne, pokud to chcete udělat pro každou jednotlivou položku. To je také logický problém. Když uživatel zadá a OR b AND c , chtěl by (a OR b) AND c nebo a OR (b AND c) ?




  1. Přesouvání a zálohování velké databáze MySQL

  2. Nelze importovat .csv do Cloud SQL z konzole

  3. Jak připojit amazon RDS v iOS

  4. Při pokusu o načtení výsledků nefunguje připojení k DB pomocí třídy PHP