title: Which SQL query is better, MATCH AGAINST or LIKE?
body: <p>To search the database for rows that have both keywords "foo" AND "bar" in any of the columns "foo_desc" and "bar_desc", I would do something like:</p>
  
  <pre><code>SELECT * 
  FROM t1 
  WHERE MATCH (t1.foo_desc, t2.bar_desc) AGAINST ('+foo* +bar*' IN BOOLEAN MODE)
  </code></pre>
  
  <p>or</p>
  
  <pre><code>SELECT * 
  FROM t1 
  WHERE (CONCAT(t1.foo_desc, t2.bar_desc) LIKE '%foo%') AND (CONCAT(t1.foo_desc, t2.bar_desc) LIKE '%bar%')
  </code></pre>
  
  <p>I expect the downside of the last query is performance.</p>
  
  <p>The upside is that the LIKE query finds 'xxfoo' where MATCH AGAINST does not.</p>
  
  <p>Which is the preferred one or is there a better solution?</p>