MySQL OR语句输出没有意义

Jas*_*per 0 mysql

尝试此查询时:

SELECT * FROM superpart WHERE
Brick_subpart_id = 603 OR 145;
Run Code Online (Sandbox Code Playgroud)

输出是:

'200', '144'
'10002', '144'
'620', '145'
Run Code Online (Sandbox Code Playgroud)

为什么"144"会出现?我不要求603到145之间的范围对吗?即便如此,144低于145 ......

Max*_*sky 6

这是因为您没有将145与任何内容进行比较,因此它变为真,并且您的查询与所有记录匹配.

查询应该是

SELECT * FROM superpart WHERE
Brick_subpart_id = 603 OR Brick_subpart_id = 145;
Run Code Online (Sandbox Code Playgroud)

它可以改写为:

SELECT * FROM superpart WHERE
Brick_subpart_id IN (603,145)
Run Code Online (Sandbox Code Playgroud)