我有一个名为 Participant 的 MySQL 数据库表,它看起来像这样:
(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 语法哪里出错了?
最佳答案
您需要使用 WHERE idParticipant IN (118, 119);
我的猜测是 MySQL 将 119 的值隐式转换为 bool 真值,所以你说: WHERE idParticipant = 118 OR TRUE;
,从而包括所有行。首先评估相等性,然后是 bool 值 OR
。
关于MySQL SELECT WHERE EQUALS 语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11036422/