如何使用mysql查询的IF条件?

如何使用mysql查询的IF条件?,mysql,if-statement,Mysql,If Statement,我正在处理分类账,我的php代码需要查询以确定其借方金额还是贷方金额 SELECT jobber, IF(Pay_type='Payable', amount AS credit_amount, amount AS debit_amount) FROM Jobber_payments 我也尝试过这个,但不适合我。如果上述查询中存在任何可能性 SELECT jobber, IF(Pay_type='Payable', credit_amount, debit_amount) AS amoun

我正在处理分类账,我的php代码需要查询以确定其借方金额还是贷方金额

SELECT jobber, 
IF(Pay_type='Payable', amount AS credit_amount, amount AS debit_amount)
 FROM Jobber_payments
我也尝试过这个,但不适合我。如果上述查询中存在任何可能性

SELECT jobber, IF(Pay_type='Payable', credit_amount, debit_amount) AS amount_type
amount AS (SELECT amount_type)
FROM Jobber_payments
如果条件(Pay_type='payment')为真,则它将通过

贷方金额将是字段名或列名以及金额值5000

否则
借方金额将是字段名或列名和金额值5000,如果条件在下面详细说明

IF(condition, value_if_true, value_if_false)
检查下面的链接,他们已经清楚地解释了IF的用法


一列不能有两个不同的名称(别名)
您可以做的是有两列,每种情况一列:

SELECT 
  jobber, 
  case when Pay_type='Payable' then amount end AS credit_amount, 
  case when Pay_type<>'Payable' then amount end AS debit_amount 
FROM Jobber_payments
选择
批发商,
当Pay_type='Payment'时,则金额以贷方金额结束,
当支付类型为“应付”时,金额以借方金额结尾
从批发商处付款

在这种情况下,有两列,其中一列为null,另一列包含一个值。

不清楚。请在此处包含您希望看到的确切输出。使用别名可以为查询的第二列指定名称。每个列只能有一个名称。您要做的是为不允许的每一行的第2列指定不同的名称。然后如何处理,知道吗?我的代码只接受贷记金额或贷记金额,而不接受两者:(然后您保持原样:1列名称
金额
,并按类型区分。