Здесь может быть легко решение, но похоже, что я сработал. Я пытаюсь запросить таблицу на основе массива значений в двух столбцах. Здесь уместна структура таблицы и примеры данныеMYSQL Select Statement with IN clause и несколько условий
comment table
id, userId, articleId .... etc etc
article table
id, userId .... etc etc
Data: UserIds = 3, 10. ArticleIds = 1, 2
Скажем, я пытаюсь найти все комментарии для конкретного набора идентификаторов статей: 1,2
Я могу легко использовать этот запрос
select * from comments WHERE articleId IN(1,2)
Однако здесь он становится сложным. У меня есть запрос, который выполняется перед запросом комментариев, который определяет соответствующие идентификаторы статьи. Эти идентификаторы находятся в массиве. Также в массиве находятся соответствующие идентификаторы пользователей для каждой статьи.
Теперь я хочу выполнить запрос таблицы комментариев только для статей в массиве (1,2) И только для комментариев, сделанных автором (3, 10).
Простой запрос, приведенный выше, вернет все комментарии к статьям 1 и 20. Так, например, я не могу понять, где добавить еще одно условие, в котором говорится о комментариях onyl для статьи 1, 20 И соответствующих userId, 3, 10 .
Любая помощь или предложения были бы высоко оценены!
I ваш массив из PHP массив или массив MySql? – Diego
Я думаю, что предложение HAVING могло бы помочь вам здесь http://dev.mysql.com/doc/refman/5.5/en/select.html – martynthewolf
, может быть, это не изящный способ, но одним из решений было бы значения с использованием разделителя. что если вы хотите статьи 1 и автора 3 или статьи 2 и автора 10 (а не статьи 1 и автора 10) .. означает 'CONCAT (userId, '_', articleId) IN ('1_3', '2_10')'. – mishu