2010-03-04 11 views
15

Se ho una matrice di dire, alcuni ID degli utenti. Come avrei potuto fare qualcosa di simile:

$array = array(1,40,20,55,29,48); 
$sql = "SELECT * FROM `myTable` WHERE `myField`='$array'"; 

C'è un modo semplice per fare questo, ho pensato a loop attraverso elementi di matrice e quindi la costruzione di una grande "DOVE - O O - - O" dichiarazione ma ho pensato che potrebbe essere un po 'lento per i grandi array.

risposta

24

Uso IN:

$sql = "SELECT * FROM `myTable` WHERE `myField` IN (1,40,20,55,29,48)"; 

è possibile utilizzare implode(",", $array) per ottenere l'elenco insieme dall'array.

11

che si desidera utilizzare IN:

WHERE `myfield` IN (1,40,20,55,29,48) 

Usa implode per costruire la stringa:

$sql = "SELECT * FROM `myTable` WHERE `myField` IN (" . implode(',', $array) . ")"; 
+0

Quindi farei "IN ($ array)"? – tarnfeld

+1

No, usa implode per costruire la stringa. –

+0

non funziona @Mark Byers –

Problemi correlati