Ario Rakip Ario Rakip - 1 month ago 5
MySQL Question

Search words by similarity in MySQL query

So I have this MySQL query:

$search = $_POST['search'];
$SQL = "SELECT * FROM `data` WHERE name='$search';
$rs = mysqli_query($dbconfig, $SQL);


I use this code to search data into the database, with the word that has been submitted by the form. The problem is, the query only shows up results if the search word matches the data in the database.

For example, if I have a file named
advertisement.png
and I search for this file, it will only show up if I search for the exact same word.

If I search for
advertisement.png
it will show
advertisement.png
, but if I search for
advertisement
it will not show up. What I want, is to search data that are similar to the key word provided in the form.

So if I search
"advert"
it shows up results that are similar to this word.

Thanks in advance.

Answer

Use LIKE operator with % for both end as follows

$SQL = "SELECT * FROM `data` WHERE name LIKE '%$search%';