2013-08-12 1 views
0

Я хочу сделать инструкцию SQL SELECT, которая выбирает несколько строк на основе значения одного столбца, но у меня есть список допустимых значений, которые соответствуют строкам, которые я хочу выбрать ,Один оператор Select для критериев одного столбца с несколькими значениями

В частности, у меня есть список идентификаторов пользователей. Я хочу выбрать всю строку для каждой строки, которая имеет идентификатор пользователя, который находится в этом списке (этот список находится в PHP, и я также делаю вызовы SQL оттуда).

Мой код до сих пор выглядит следующим образом:

$list_of_ids = array(1, 5, 7, 23);//list of user ids I want to select. 
$query = sprintf("SELECT * FROM users WHERE user_id=?????", ????); 

Как мне это сделать?

+0

вы можете использоваться Еогеасп цикл может быть помощь для вас. –

ответ

4
$ids = implode(',',$list_of_ids); 
$query = sprintf("SELECT * FROM users where user_id in ($ids)"); 
+0

Отлично! Я подумал, что мне придется пройти через и сделать что-то вроде SELECT * FROM пользователей WHERE user_id = 2 ИЛИ user_id = 3 OR ... –

+1

да, но я бы сказал, что в этом случае вы могли бы сделать 'count ($ list_of_ids)' и если у вас есть только один элемент, вы можете также выполнить 'where user_id = $ id;' в запросе производительности. –

+0

Вы эмулируете результаты? вы можете сделать эхо самого запроса? –

1

Преобразовать массив в разделенных запятыми строку, как это:

$list_of_ids = array(1, 5, 7, 23); 
    $out = implode(",", $list_of_ids) ; 
    $query = sprintf("SELECT * FROM users WHERE user_id in =(".$out.")"); 
+0

Это должно быть без sprinf, которое на самом деле написано sprintf –

+0

ну его код. просто сделал опечатку – Aris

 Смежные вопросы

  • Нет связанных вопросов^_^