Method 1 - Store additional column
First method is to store additional column in your artists table with only a latin characters in it (eg.
Method 2 - Update the LIKE query
MySQL have the ability to replace exacly one character with a wildcard. In your case the query would look like this:
WHERE `artist` LIKE "beyonc_"
This query would match:
But would not match:
Method 3 - Use a full text search
Last method is to use full text search. It would require some changes in table. The columns you try to match against would need to be of type
Text. Then you can run a query like this:
MATCH (`artist`) AGAINST ('Beyonce' IN NATURAL LANGUAGE MODE)
This should return all the results that match a string.
Alternatively you can provide a score column like this:
*, MATCH (`artist`) AGAINST ('Beyonce' IN NATURAL LANGUAGE MODE) AS `score`
and decide what results are best by checking
score column. To read more about full text search click the link above.