我不太喜欢sql,在使用mysql查询时遇到以下问题。我试着向你解释我该做什么。
我有这个查询,它可以正常工作:
SELECT
LNG.id AS language_id,
LNG.language_name AS language_name,
LNG.language_code AS language_code,
CLP.is_default AS id_default_language
FROM Country_Language_Preference AS CLP
INNER JOIN Country AS CNT
ON CLP.country_id = CNT.id
INNER JOIN Languages AS LNG
ON CLP.language_id = LNG.id
WHERE
CNT.country_name = "Senegal"
此查询有一个where输入参数,如下所示:
CNT.country_name = "Senegal"
我想实现以下行为:如果传递的参数的值为塞内加尔或卢旺达,则执行上一个查询。
如果此输入参数与塞内加尔或卢旺达的值不同,则使用此where条件执行相同的查询_
CNT.country_name = "GLOBAL"
我可以用sql做这样的事情吗?
2条答案
按热度按时间dphi5xsq1#
使用
CASE
声明,这应该是可能的。试试这个:
pb3s4cty2#
简单使用
OR
:WHERE (CNT.country_name = @country OR
(@country NOT IN ('Rwanda', 'Senegal') AND CNT.country_name = 'GLOBAL')
)