2012-06-14 6 views
1

У меня есть таблицы базы данных MySQL с именем участника, который выглядит примерно так:MySQL SELECT, WHERE РАВНО Синтаксис

(idParticipant) - (firstName) - (secondName) - (gender) - (dob) 

118 John  Dunne   m 1944-04-01 

117 Mary  Delaney  f 1955-05-03 

116 Adam  Bermingham m 1920-01-01 

115 Eamonn Reilly  m 1987-03-19 

114 Aaron Duane   m 1990-07-08 

119 Sarah Calvin  f 1977-07-17 

Когда я использую этот запрос:

SELECT * FROM `Participant` WHERE idParticipant = 118 OR 119; 

Я думаю, что я должен получить следующий результат :

118 John Dunne  m 1944-04-01 

119 Sarah Calvin  f 1977-07-17 

Но вместо этого он просто возвращает всю таблицу. Где я ошибаюсь в синтаксисе MySQL?

+0

Зачем вам решать вопрос? Это совершенно правильный вопрос. – AzzyDude

ответ

4

Вы должны использовать WHERE idParticipant IN (118, 119);

Я думаю, что MySQL неявно преобразовывать значение 119 до истинного значения булева, так что вы говорите: WHERE idParticipant = 118 OR TRUE;, таким образом, в том числе всех строк. Сначала оценивается равенство, за которым следует Boolean OR.

+0

Ах да, конечно ... Мой мозг жарится в данный момент. Должен был это видеть. Благодарю. – AzzyDude

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