Вот моя ситуация: мне нужно выбрать все сообщения, где user_id = x OR y OR z.
У меня есть массив в PHP:
users = ('1', '2', '3')
есть все равно, чтобы выбрать все сообщения, где user_id = одно из этих значений без массивного запроса:
user_id = '1' OR user_id = '2' OR user_id = '3?'
(Мне нужно получать сообщения более 100 человек, чтобы они были неэффективными)
благодаря
Это легко сделать:
$query = "SELECT * FROM table_name WHERE user_id IN('1','2','3')";
Поскольку ваше значение находится в массиве, вы можете использовать:
$users = array('1', '2', '3'); $user_id = "'" . implode("', '", $users ) . "'"; $query = "SELECT * FROM table_name WHERE user_id IN($user_id)";
Надеюсь это поможет.
Используйте предложение IN .
SELECT * FROM YourTable WHERE user_id IN ('1','2','3')
Да! Вы можете использовать оператор IN
:
user_id IN ('1', '2', '3')
Если ваш массив всегда будет безопасным и содержать элементы, вы можете сделать следующее:
"user_id IN ('" . implode("', '", $users) . "')"
в PHP тоже.
user_id >= 1 AND <= 3
Это одна из альтернатив.
Вероятно, вам не нравится ключевое слово IN
. Вместо этого вы можете использовать регулярное выражение следующим образом:
выберите * from your_table, где user_id regexp '1 | 2 | 3'