title: How to use like pattern matching with PostgreSQL and Python with multiple percentage (%) symbols?
body: <p>I am trying to pattern match with the <code>LIKE LOWER('% %')</code> command however I think the fact that I am using a python variable with %s is mucking it up. I can't seem to find any escape characters for the percentage symbol and my program gives me no errors. Is this the problem or is there something else I'm missing. It does work if I just run <code>LIKE %s</code> however I need to be able to search like not equals.</p>
  
  <pre><code># Ask for the database connection, and get the cursor set up
  conn = database_connect()
  if(conn is None):
      return ERROR_CODE
  cur = conn.cursor()
  print("search_term: ", search_term)
  try:
      # Select the bays that match (or are similar) to the search term
      sql = """SELECT fp.name AS "Name", fp.size AS "Size", COUNT(*) AS "Number of Fish"
                 FROM FishPond fp JOIN Fish f ON (fp.pondID = f.livesAt)
                WHERE LOWER(fp.name) LIKE LOWER('%%s%') OR LOWER(fp.size) LIKE LOWER('%%s%')
                GROUP BY fp.name, fp.size"""
      cur.execute(sql, (search_term, ))
      rows = cur.fetchall()
      cur.close()                     # Close the cursor
      conn.close()                    # Close the connection to the db
      return rows
  except:
      # If there were any errors, return a NULL row printing an error to the debug
      print("Error with Database - Unable to search pond")
  cur.close()                     # Close the cursor
  conn.close()                    # Close the connection to the db
  return None
  </code></pre>