title: Multiple similar SELECTs in one statement
body: <p>I have these SELECT statements in SQL:
  this:</p>
  
  <pre><code>SELECT
      *
  FROM
      products
  WHERE
      product_category = '12'
  LIMIT
      3
  </code></pre>
  
  <p>and this:</p>
  
  <pre><code>SELECT
      *
  FROM
      products
  WHERE
      product_category = '36'
  LIMIT
      3
  </code></pre>
  
  <p>and this:</p>
  
  <pre><code>SELECT
      *
  FROM
      products
  WHERE
      product_id IN ('3178','3181','7403')
  LIMIT
      3
  </code></pre>
  
  <p>As you can see they are very similar, what I want is to run these 3 statement effectively, point of that is that whole result should be 9 rows long (because 3x3), and firstly should be displayed three products from category 12, then second three products should be displayed from category 36 and the last three products should be products with IDs 3178,3181,7403.</p>
  
  <p><strong>I know</strong> that I can use <code>UNION</code> like this:</p>
  
  <pre><code>    (SELECT
          *
      FROM
          products
      WHERE
          product_category = '12'
      LIMIT
          3)
  UNION
      (SELECT
          *
      FROM
          products
      WHERE
          product_category = '36'
      LIMIT
          3)
  UNION
      (SELECT
          *
      FROM
          products
      WHERE
          product_id IN ('3178','3181','7403')
      LIMIT
          3)
  LIMIT 9
  </code></pre>
  
  <p>But I wonder, if there is more effective way, because these statements are mostly copies.</p>