To search the database table for the exact word.
1) Using LIKE
$query = “SELECT * FROM table_name WHERE column LIKE ‘%key_word%’ “;
The above query searches for the string which contains key_word as a single word or mixed in a word.
Example :
if you want to search for a keyword “tea”, above query will fetch records which contain words like “steak”, “teas” ect.
Alternate query is
$query = “SELECT * FROM table_name WHERE column LIKE ‘% key_word %’ “;
using space before and after key_word, which fetches the record that matches the exact key_word.
there is a little problem with the above query, if the key_word present in the end of the sentence ( total text/string), it wont fetch that record.
Example :
if the string is “this is the test” and if searching for the ‘test’ key_word, the above query will not fetch this record because there is no trailing space after the ‘test’ key_word.
2) Using Regular Expression
$query = “SELECT * FROM table_name WHERE column REGEXP ‘[[:<:]]key_word[[:>:]] ‘ “;
The above query will search for the exact word.
In order to search for a column which does not contain a particular word use below query
$query = “SELECT * FROM table_name WHERE column NOT REGEXP ‘[[:<:]]key_word[[:>:]] ‘ “;
The above query will fetch the records which does not contain the key_word in the column.