Поиск в таблице базы данных mysql по запросу «float» номер широты и отображение результатов на странице

То, что я создаю, — это простая форма для поиска в таблице базы данных MySQL, которая на данный момент блестяще ищет текстовые имена, теперь мне нужно искать число широты, хранящееся в виде числа с плавающей запятой. Заголовок таблицы: name, lat и lng. Когда пользователь ищет соответствующую широту, только те результаты отображаются на той же странице. Любая помощь будет потрясающей.

$sql = "SELECT name,lat,lng FROM table WHERE name LIKE '%".$term."%'
OR lat MATCH '%".$term."%' OR lng MATCH '%".$term."%'";

-1

Решение

  • Изменить DATATYPE для широты и долготы в числовое значение. Выбор представительства

  • Определите, запрашивает ли пользователь широту / долготу по сравнению с именем. OR убивает производительность почти так же, как ведущий шаблон.

  • Использовать FULLTEXT индекс вместе с MATCH(name) AGAINST('$term' in BOOLEAN MODE) для эффективного поиска по имени.

  • Используйте диапазон; пользователи не будут вводить точные значения широты / долготы. Также есть вопросы округления. lat BETWEEN $lat - 0.01 AND $lat + 0.01, (Это примерно в километре север / юг; отрегулируйте по желанию.

После того, как вы реализовали большинство из них, вернитесь за дополнительными советами / злоупотреблениями.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]