多个SQL查询与php过滤器结果集

时间:2016-02-07 11:30:47

标签: php mysql sql filter resultset

假设有多个标签:

  • 所有行
  • 垃圾桶中的行
  • 等待批准的行

我试图找出创建多个数据集的最佳方法

a - 一个数据集,然后使用PHP将其过滤为新的

b - 多次查询

行数可能从100到3000不等。 中间有没有最好的方法来做到这一点?

1 个答案:

答案 0 :(得分:1)

我认为你可以使用这个简单的解决方案:

  1. SQL
  2. SELECT ...,
    IF( [{in-trash} condition], 1, 0) as in_trash,
    IF( [{to-approve} condition], 1, 0) as to_approve
    FROM ...
    
    1. PHP
    2. <?php
      $tabs = cache->get('tabs');
      if( ! $tabs )
      { 
        $tabs = [ 'all' => [], 'in_trash' => [], 'to_approve' => [],];
        $rows = mysql->query();
        foreach( $rows as $row )
        {
            $tabs ['all'] [] = $row;
            if( $row ['in_trash'] )
            {
              $tabs ['in_trash'] [] = $row;
            }
            if( $row ['to_approve'] )
            {
              $tabs ['to_approve'] [] = $row;
            }
        }
        cache->set('tabs', $tabs);
      }
      ?>