如何从具有特定值的表中获取列名

时间:2018-02-22 12:51:28

标签: php mysql laravel

我有一张像这样的表:

.............................
id  | Sun | Mon | Tue | Wed |
.............................
1   | 0   | 1   | 1   |  1  |
.............................

现在我从此查询中获取所有列名称:

DB::getSchemaBuilder()->getColumnListing('weak');
  

它返回所有列名称

的数组

但是我希望那些具有1值的列名如何获得那些在laravel中具有1个值的列。任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

您可以将array_keys()与第二个参数一起使用:

$object = DB::table('weak')->first();
$columns = array_keys((array)$object, 1);

结果将是:

['Mon', 'Tue', 'Wed']

答案 1 :(得分:-1)

我认为您需要使用IF函数构建自定义查询

SELECT
   (IF(table.Sun == 1) table.Sun,)
   (IF(table.Mon == 1) table.Mon,)
   ......
   table.id
FROM table