Я ищу в базе данных названия школ.Одна из школ здесь называется EO Green.У меня проблема в том, что если кто-то напишет «EO Green», он, естественно, получит школу в списке результатов.Однако, если кто-то печатает «EO Green», оно не отображается, но оно должно быть.
Вот запрос:
SELECT DISTINCT name
FROM donations
WHERE name LIKE '%$query%'
ORDER BY CASE WHEN name LIKE '$query%' THEN 1
WHEN name LIKE '%$query' THEN 3
ELSE 2 END
LIMIT 8
Есть ли решение, которое я просто пропускаю?
Это не вопрос удаления пунктуации в PHP, это вопрос игнорирования пунктуации в базе данных в запросе MySQL.
[EDIT] Решение, очевидно, заключается в заменена MySQL Query
WHERE REPLACE($field, '.', '') LIKE '%$query%'
, а затем также уберите пунктуацию из пользовательского ввода
$query = str_replace(".", "", $query);
, которая выполняет то, что я после, но мне все еще любопытно, если есть более простойпуть.Хотя я пока назову это решенным, поскольку это делает работу.