有时候可能数据库存的是一个汇总的字段,例如表A,有一类型名称为identifier,根据0和1代表不同含义来区分值,比如0代表私有,1代表公有,值存储在name字段里,这时候想获得这样的结果:id, 私有的名字, 共有的名字三列字段,我们可以在查询时候用 IF 语句来实现。
SELECT cam_id, IF(identifier = 0, name, null) as private, if(identifier = 1, name, null)as public from table_A limit 10
上述语句是用 IF 来产生多列,第一个参数是条件,第二个是条件成立取的值,第三个是不成立取值,个人感觉有点像三元表达式。