使用If else条件选择mysql中的列?

时间:2011-01-14 07:17:43

标签: mysql

我有两个这样的表。两个表是单独的表

AccountNo       User         Name
----------------------------------
 1               U            a
 2               U            b
 3               U            c

另一个表包含以下结构

 TempAccountNo       Mycolumn    AccountNo     
------------------------------------------
 4               X                2341
 5               Y                 2
 6               Z                2568

我需要选择AccountNo或TempAccountNo,Mycolumn From table II,条件是

If (tableII.AccountNo not in table I)

我需要选择TempAccountNo from table II

else

我需要选择AccountNo from table II

我怎样才能做到这一点。

3 个答案:

答案 0 :(得分:37)

   SELECT IF(t1.AccountNo IS NULL, t2.TempAccountNo, t2.AccountNo) AS optional_field
     FROM table2 t2
LEFT JOIN t1 ON t1.AccountNo = t2.AccountNo

答案 1 :(得分:31)

我使用if ... else语句或使用case语句对多个select字段进行了mysql查询。这将在下面描述。

  1. 使用if语句

    选择MYSQL
    select IF('fieldname with condition','if true value','if false value') from table_name where 1;
    
  2. MYSQL选择使用多个if else

    select 
      CASE
        WHEN fieldname1 = 'value1' THEN 'if true then give value'
        WHEN fieldname2 = 'value2' THEN 'if true then give value' THEN 'if true then give value'
        WHEN fieldname3 = 'value3' THEN 'if true then give value' THEN 'if true then give value' 
        WHEN fieldname4 = 'value4' THEN 'if true then give value' THEN 'if true then give value'
        ELSE 'else all false then give default value'
      END as STATUS,
    from table_name where 1;
    
  3. 尝试使用这些查询。

答案 2 :(得分:0)

SELECT IF(t1.AccountNo IS NULL, t2.TempAccountNo, t2.AccountNo) AS Acc_common
FROM table1 t1
INNER JOIN table2 t2 ON t1.AccountNo = t2.AccountNo

这会有所帮助..