2012-12-13 106 views
0

我想修改SQL语句现在我想改变它像SELECT语句的if-else条件

SELECT id 
FROM page 
WHERE name = "Test" 
AND if idLanguage != idlanguage then idParent = idpage 

这就好比

SELECT id 
FROM page 
WHERE name = "Test" 

很简单会出现什么更好的办法做到这个?

谢谢

回答

3
SELECT id 
FROM page 
WHERE name = "Test" 
AND (idLanguage = idlanguage OR idParent = idpage) 

是更好,因为它是有效的SQL语法。

+0

这是否会每次从表中选择所有记录? –

+0

@JoeGJoseph我认为OP通过'idLanguage'和'idlanguage'意味着不同的东西。也许这是一个区分大小写的数据库,或者其中一个将被一个参数替换。 – GolfWolf

0

如果您实际上想要在数据库中设置idParent的值,那么在选择之前您需要一个UPDATE声明。

UPDATE page SET idParent = idpage 
WHERE name = "Test" 
    AND idLanguage != idlanguage; 

SELECT id FROM page 
WHERE name = "Test" 
1

如何使用case语句?请尝试:

SELECT id 
FROM page 
WHERE name = "Test" AND 
idParent = (CASE WHEN idLanguage <> idlanguage THEN idpage ELSE idParent END)