Mysql 如果一个或另一个字段或两个字段匹配,则获取行

Mysql 如果一个或另一个字段或两个字段匹配,则获取行,mysql,Mysql,我需要按我具有以下逻辑的位置获取促销: City = Oslo, Country = No : True City = '', Country = No : True City = Bergen, Country = No : False 到目前为止,我的疑问是: SELECT * FROM promotion WHERE date_start <= DATE_ADD(CURDATE(), INTERVAL 14 DAY) AND date_end >= CURDATE

我需要按我具有以下逻辑的位置获取促销:

City = Oslo, Country = No : True  
City = '', Country = No : True  
City = Bergen, Country = No : False  
到目前为止,我的疑问是:

SELECT *
FROM promotion
WHERE date_start <= DATE_ADD(CURDATE(), INTERVAL 14 DAY)
AND date_end >= CURDATE()
AND fk_countryID = 'NO'
order by date_start ASC
选择*
晋升
其中date_start=CURDATE()
而fk_countryID='否'
按日期订购\u开始ASC
这将返回5行。
-一旦城市空白。
-一个城市是卑尔根

想要的结果:4行,其中一个城市为空

我也试过:

SELECT id, name, city, fk_countryID, date_start, date_end
FROM promotion
WHERE date_start <= DATE_ADD(CURDATE(), INTERVAL 14 DAY)
AND date_end >= CURDATE()
AND city = '' || city = 'Oslo'
AND fk_countryID = 'NO'
order by date_end ASC
选择id、姓名、城市、fk\U国家id、开始日期、结束日期
晋升
其中date_start=CURDATE()
城市=''| |城市='奥斯陆'
而fk_countryID='否'
按日期下单\u结束ASC
这会返回城市为空或“奥斯陆”且国家id为“否”的所有行,但也会返回日期限制之外的行


我怎样才能做到这一点?感谢您的帮助。

我最终找到了答案:

SELECT id, name, city, fk_countryID, date_start, date_end
FROM promotion
WHERE date_start <= DATE_ADD(CURDATE(), INTERVAL 14 DAY)
AND date_end >= CURDATE()
AND city IN ('','Oslo')
AND fk_countryID = 'NO'
order by date_end ASC
选择id、姓名、城市、fk\U国家id、开始日期、结束日期
晋升
其中date_start=CURDATE()
和奥斯陆的城市
而fk_countryID='否'
按日期下单\u结束ASC

如果您找到了答案,请将其作为正确答案张贴在下面。