我的桌子名为 Beneficiaryloans ,如下所示
+----+----------------+--------+--------+------+--------+-----------+ | id | beneficiary_id | hfi_id | amount | rate | period | status_id | +----+----------------+--------+--------+------+--------+-----------+ | 15 | 37 | 116 | 123 | 123 | 123 | 4 | | 16 | 38 | 117 | 123 | 123 | 123 | 4 | | 17 | 39 | 116 | 123 | 123 | 123 | 4 | +----+----------------+--------+--------+------+--------+-----------+
我希望根据 Hfi_id
按如下方式显示+-----------------+---------------------------+ | beneficiary_id | hfi_id_116 | hfi_id_117 | +-----------------+---------------------------- | 37 | True | False | | 38 | False | True | | 39 | True | False | +----------------------------------------------
如何在MySQL中执行此操作?
注意:我在这里发布了一些行,并且 hfi_ids 会在此表中保留标记,如果 3 hfi_id 那么我需要 3列,如果4 hfi_ids 那么我需要 4列,依此类推
答案 0 :(得分:6)
试试这个:
SELECT beneficiary_id,
CASE hfi_id
WHEN 116 THEN true
ELSE false
END AS hfi_id_116,
CASE hfi_id
WHEN 117 THEN true
ELSE false
END AS hfi_id_117
FROM your_table
或者如果你需要字符串
SELECT beneficiary_id,
CASE hfi_id
WHEN 116 THEN 'True'
ELSE 'False'
END AS hfi_id_116,
CASE hfi_id
WHEN 117 THEN 'True'
ELSE 'False'
END AS hfi_id_117
FROM your_table