简体   繁体   English

SQL根据if结果的不同查询

[英]SQL Different query depending on the if result

I want to do a query that depending on the char_length of one parameter should select one table or another. 我想执行一个查询,该查询取决于一个参数的char_length应该选择一个表还是另一个表。 It should be something like this but I know that is not correct at all and there are syntax errors which I can't find. 应该是这样的,但是我知道那根本不正确,而且我找不到语法错误。

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

Any ideas? 有任何想法吗? Thanks. 谢谢。

Would that be a solution for you: 这将为您提供解决方案:

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

or is the if statement forced? 还是if语句是强制的?

As GhostGambler said, why not do this with php? 正如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'");
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM