Mysql SQL查询根据if结果的不同而不同

Mysql SQL查询根据if结果的不同而不同,mysql,sql,if-statement,Mysql,Sql,If Statement,我想做一个查询,根据一个参数的字符长度选择一个表或另一个表。它应该是这样的,但我知道这是不正确的,有语法错误,我找不到 SELECT IF ( CHAR_LENGTH('var44') < 3, name FROM nets WHERE code = 'var44', name FROM variable WHERE id = (SELECT SUBSTRING('var44',4)) ); 有什么想法吗?谢谢。这是您的解决方案吗: select name from nets WHER

我想做一个查询,根据一个参数的字符长度选择一个表或另一个表。它应该是这样的,但我知道这是不正确的,有语法错误,我找不到

SELECT IF (
CHAR_LENGTH('var44') < 3,
name FROM nets WHERE code = 'var44',
name FROM variable WHERE id = (SELECT SUBSTRING('var44',4)) 
);

有什么想法吗?谢谢。

这是您的解决方案吗:

select name from nets WHERE code = 'var44' and CHAR_LENGTH('var44') < 3
union
select name FROM variable WHERE id = (SELECT SUBSTRING('var44',4)) and CHAR_LENGTH('var44') >= 3

或者if语句是强制的?

正如GhostGambler所说,为什么不使用php呢

if (strlen($var44)<3) {
    $sql = mysql_query("SELECT name FROM nets WHERE code = '$var44'");
} else {
    $var44 = substring($var44, 4);
    $sql = mysql_query("SELECT name FROM variable WHERE id = '$var44'");
}

您应该在PHP中执行此操作,并发送一个或另一个查询。特别是因为var44是硬编码的,并且不是来自另一个MySQL表。