2011-02-02 5 views
0
SELECT * FROM ptsurvey.survey s 
    WHERE (s.companyid = 1 AND s.groupid = 34 AND s.status=1 AND s.creatoruid =286) 
     OR 
     (AND s.groupid = 34 AND s.status=2 AND s.status = 1)); 

Я хочу проверить состояние, подобное этому в mysql. Этот запрос не работает.ORing, где условие в mysql

+0

Ваш формат должен форматировать исходный код с помощью кнопки '{}' панели инструментов. На этот раз я сделал это для вас. –

+0

«Не работает» - это худший возможный фрагмент информации, которую вы могли бы предоставить, особенно. если вы действительно получаете точное сообщение об ошибке из MySQL с числовым кодом и всеми. –

ответ

0

В SQL вам нужно закрыть столько скобок, сколько вы открываете (не менее, не более).

+0

Я закрыл все фигурные скобки, которые я открыл, но все еще не работает. Я думаю, что запрос неверен. – kiran

+0

Если запрос неверен и он не работает, мой совет - исправить код, чтобы он начал работать. –

+0

@kiran: Тогда почему я вижу еще одну закрывающуюся круглую скобку, чем есть открытие? Я также хотел бы добавить, что последняя часть предложения WHERE никогда не будет правдой. – ontrack

1

избавиться от лишнего «И» и близкого Paren ...

SELECT * 
    FROM 
     ptsurvey.survey s 
    WHERE 
     ( s.companyid = 1 
      AND s.groupid = 34 
      AND s.status = 1 
      AND s.creatoruid = 286) 
     OR 
     ( s.groupid = 34 
      AND s.status=2 
      AND s.status = 1); 

Кроме того, ваша второй пункт части (ИЛИ) стороны, вы проверяете для ОБА s.Status = 2 с. Status = 1, который НИКОГДА не будет прав ... Я думаю, вы имели в виду только 1 статус для тестирования этого элемента.

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