如何正确使用if语句来添加特定的where条件?

h7appiyu  于 2021-06-24  发布在  Mysql
关注(0)|答案(2)|浏览(437)

我不太喜欢数据库,在处理涉及if语句的mysql查询时遇到了问题。
我有一个简单的问题(很好用):

(LCZ1.country_id = (SELECT LCZ2.country_id FROM Localization AS LCZ2 WHERE LCZ2.id = 5))

将整数值(1或2)返回到lcz1.country\u id。
如果返回值为1,我想使用if语句来执行某些操作,如果返回值为2,则使用其他语句。
我试着这样做(if语句应该在where子句中添加and条件):

IF(LCZ1.country_id = 1)
BEGIN
AND
     LCZ1.country_id is not null
END

IF(LCZ1.country_id = 2)
BEGIN
AND
     LCZ1.country_id is not null
END

但这似乎是错误的,它进入错误。
怎么了?我错过了什么?如何解决此问题?

j8ag8udp

j8ag8udp1#

希望这对你有用。别介意我声明了一个变量。将其替换为列。

DECLARE @LCZ2.country_id varchar(20)
set @LCZ2.country_id=(SELECT LCZ2.country_id FROM Localization AS LCZ2 WHERE LCZ2.id = 5))
IF(@LCZ2.country_id= 1)
BEGIN
   set @LCZ2.country_id= 'not null'
END
IF(@LCZ2.country_id= 2)
BEGIN
   set @LCZ2.country_id= 'not null'
END
mspsb9vt

mspsb9vt2#

尝试下面提到的查询

SELECT case 
when LCZ2.country_id is null then 'null'
when LCZ2.country_id = 1 then 'something1'
when LCZ2.country_id = 2 then 'something2'
end as output
FROM Localization AS LCZ2 
WHERE LCZ2.id = 5;

注:1。lcz2.id不为空2。在something1,something2和null中改变你想要的任何东西

相关问题