У меня есть три колонки с тремя значениями, которые могут быть установлены для каждого столбцаMySQL Query помощь
Column_1 | column_2 | column_3
________ | ________ | ________
COMPLETED| FAILED | PENDING
COMPLETED| COMPLETED| COMPLETED
FAILED | COMPLETED| COMPLETED
COMPLETED| PENDING | COMPLETED
COMPLETED| COMPLETED| PENDING
COMPLETED| COMPLETED| COMPLETED
COMPLETED| COMPLETED| COMPLETED
PENDING | COMPLETED| COMPLETED
Цель двух запросов, один, чтобы найти какой-либо записи с ожидающим статусом, а другой, чтобы найти какие-либо записи с FAILED Статус
ПРИМЕЧАНИЕ: ОЖИДАНИЕ и не должны иметь ту же самую логику
Query: PENDING
SELECT * FROM tbl
WHERE Column_1 = 'PENDING' OR Column_2 = 'PENDING' OR Column_3 = 'PENDING'
Query: FAILED
SELECT * FROM tbl
WHERE Column_1 = 'FAILED' OR Column_2 = 'FAILED' OR Column_3 = 'FAILED'
Эти запросы не вытягивать правильные записи. Я думаю, что это соответствует первому условию в предложении WHERE, а затем делает предложение OR как отдельное условие. Я пробовал пару вариантов, но до сих пор не повезло.
Alt Query:
SELECT * FROM tbl
WHERE Column_1 OR Column_2 OR Column_3 = 'PENDING'
Так что для PENDING статуса, запрос должен возвращать 4 строки для сетки данных выше и для неисправного состояния, запрос должен возвращать 2 строки по сетке данных выше
Ваш первый набор запросов выглядит хорошо - в чем проблема? – Greg
что вы получаете? эти первые 2 запроса выглядят отлично на первый взгляд для меня ... никогда не пробовали этот стиль запроса alt раньше ... но это выглядит смешно для меня :) – danb
Это заставляет условие WHERE быть отдельным ограничением, поэтому условия OR рассматриваются как отдельное ограничение. Имеет ли это смысл? –