How to search multiple columns in MySQL? How to search multiple columns in MySQL? mysql mysql

How to search multiple columns in MySQL?


If it is just for searching then you may be able to use CONCATENATE_WS.This would allow wild card searching.There may be performance issues depending on the size of the table.

SELECT * FROM pages WHERE CONCAT_WS('', column1, column2, column3) LIKE '%keyword%'


You can use the AND or OR operators, depending on what you want the search to return.

SELECT title FROM pages WHERE my_col LIKE %$param1% AND another_col LIKE %$param2%;

Both clauses have to match for a record to be returned. Alternatively:

SELECT title FROM pages WHERE my_col LIKE %$param1% OR another_col LIKE %$param2%;

If either clause matches then the record will be returned.

For more about what you can do with MySQL SELECT queries, try the documentation.


If your table is MyISAM:

SELECT  *FROM    pagesWHERE   MATCH(title, content) AGAINST ('keyword' IN BOOLEAN MODE)

This will be much faster if you create a FULLTEXT index on your columns:

CREATE FULLTEXT INDEX fx_pages_title_content ON pages (title, content)

, but will work even without the index.