title: Search for all combinations of first, middle and last name
body: <p>In my database there is a table called <code>author</code>, which 4 columns: </p>
  
  <ul>
  <li>authorID</li>
  <li>firstName</li>
  <li>middleName</li>
  <li>lastName</li>
  </ul>
  
  <p>A user, for example, is searching for Edgar Allan Poe. In our table Edgar Allan Poe is saved as: <strong>firstName</strong>- Edgar, <strong>middleName</strong> - Allan and <strong>lastName</strong> - Poe. This query is pretty straightforward. But how to write a query that matches not only Edgar Allan Poe, but also Poe Allan Edgar, Edgar Poe, Allan Poe, Edgar Allan, Allan Edgar Poe without writing all these possible combinations on our own? Also when the user is searching, he/she is searching as 'Edgar Allan Poe' or 'Poe Allan Edgar' altogether, not in a separate fields. </p>