2010-03-04 40 views
15

Nếu tôi có một mảng nói, một số ID của người dùng. Làm thế nào tôi có thể làm một cái gì đó như thế này:

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

Có một cách đơn giản để làm được điều này, tôi nghĩ về vòng lặp thông qua các mục mảng và sau đó xây dựng một lớn "WHERE - HAY HAY - - OR" nhưng tôi nghĩ rằng có thể là một chút chậm cho mảng lớn.

Trả lời

24

Sử dụng IN:

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

bạn có thể sử dụng implode(",", $array) để có được danh sách cùng từ mảng.

11

Bạn muốn sử dụng IN:

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

Sử dụng implode để xây dựng chuỗi:

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

Vì vậy, tôi sẽ làm "IN ($ array)"? – tarnfeld

+1

Không, sử dụng implode để xây dựng chuỗi. –

+0

không hoạt động @Mark Byers –

Các vấn đề liên quan