2016-05-07 5 views
-2

У меня есть динамический массив. Например, вот так.MySQL выбор запроса на основе значения массива

$color = array('red','blue','green'); 
"SELECT * FROM mytable where colors=(red or blue or green)" 

Но мой массив динамический. Поэтому я не знаю значений и как я могу закодировать массив и выбрать строки.

+0

использовать цикл и итерации по массиву и получить результаты. – Lal

+3

http://stackoverflow.com/questions/920353/can-i-bind-an-array-to-an-in-condition – Chris

+0

Используйте 'IN' в mysql, добавьте необходимое количество заполнителей и привяжите переменные. ** Редактировать: ** Точно так же, как в вопросе @Chris упоминает ... – jeroen

ответ

0

использование where in.

SELECT * FROM your_table WHERE COLUMN IN $your_dynamic_array 
1

попробовать это

<?php 

$color = array('red','blue','green'); 


$ss = 'SELECT * FROM mytable where colors IN ("' . implode('", "', $color) . '")'; 

output : 

SELECT * FROM mytable where colors IN ("red", "blue", "green") 

?> 
+0

Не уверен, что это сработает jothi, поскольку in() ожидает, что строковые значения будут обернуты в одинарные кавычки. – Jeff

+0

спасибо @Jeff Я обновил свой ответ – JYoThI

+0

, если я выбрал красный цвет, он выбирает строки, чей цвет = красный, но если я выбираю красный и синий, он возвращает пустой результат. Мне нужно что-то вроде «SELECT * FROM mytable where colors = RED ИЛИ BLUE ИЛИ GREEN – athi

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