我想做一个查询,根据一个参数的char_length应该选择一个或另一个表。它应该是这样的,但我知道这根本不正确,并且存在我无法找到的语法错误。
SELECT IF (
CHAR_LENGTH('var44') < 3,
name FROM nets WHERE code = 'var44',
name FROM variable WHERE id = (SELECT SUBSTRING('var44',4))
);
有什么想法吗?感谢。
答案 0 :(得分:1)
这对您来说是一个解决方案:
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
语句?
答案 1 :(得分:0)
正如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'");
}