Как должен выглядеть этот MySQL Query?

0

У меня есть таблица со следующим дизайном:

ID    OPT_1    OPT_2    OPT_3    A_ID

1     3        4        3        1
2     5        2        1        1
3     1        2        2        1

Я хочу выбрать все OPT для A_ID 1, но когда я запускаю запрос, я не знаю A_ID, я знаю только OPT.

Итак, как я могу вставить переменную, чтобы получить A_ID для параметров, которые я хочу? например:

SELECT * FROM table 
WHERE ((OPT_1 = 1 OR OPT_1 = 5) 
   AND (OPT_2 = 4 OR OPT_2 = 2) 
   AND (OPT_3 = 3 OR OPT_3 = 2) 
   AND A_ID = $X=$X)

Спасибо,

  • 0
    Похоже, вы хотите запрос типа «найти те, которые похожи на этот»?
  • 0
    Не уверен, мне нужен A_ID, чтобы быть уникальным для всех вводимых мной OPT
Теги:

1 ответ

2
Лучший ответ

Возможно, лучший способ сделать это - немного разбить его.

SELECT *
FROM table
WHERE A_ID in (
    SELECT A_ID
    FROM table 
    WHERE (OPT_1 = 1 OR OPT_1 = 5)
    union
    SELECT A_ID
    FROM table 
    WHERE (OPT_2 = 4 OR OPT_2 = 2)
)
  • 0
    Это обеспечит хороший результат, чем другие.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню