glossyweb
@glossyweb
Mark marketing

Как сделать поиск данных из mysql которые сохраненны в формате unicode?

У меня есть такой кусок кода которых выполняет поиск по заданым параметрам из баззы даных. Но в базе сохранены разные языки, и некоторые в формате Unicode (вьетнамский язык). И соответственно поиск не видит етих данных.

Как сделать так чтобы поиск работал ?

/* Search */
        if($this->search && $this->search_by) {
            $where .= " AND {$table_prefix}`{$this->search_by}` LIKE '%{$this->search}%'";
        }


И данные в базе:

64b046e983a1f298406680.png
по картинке видно что некоторые символы в формате unicode + english

+ как сделать так чтобы он искал не в целом столбце settings а конкретно в "meta_description":

P.S. иди можно сделать сохранене данных в нормальном формате и тогда будет поиск работать?
  • Вопрос задан
  • 94 просмотра
Решения вопроса 2
mayton2019
@mayton2019
Bigdata Engineer
Эта строка просто не работает.
$where .= " AND {$table_prefix}`{$this->search_by}` LIKE '%{$this->search}%'";
Ответ написан
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Надо сделать сохранение данных в нормальном формате и тогда будет поиск работать.

Но для этого надо сначала научиться пользоваться базой данных, потом разработать нормальную структуру, и хранить данные как положено - каждое поле отдельно, а не всё одной в помойной куче.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@pantsarny
Вы храните данные в json, посмотрите на набор функций json_ в MySQL
Еще у вас юникод декодирован - значит на входе в поиске строку передавайте тоже в декаде уникод, но потеряете часть функционала MySQL (collation)
Так что лучше используйте функцию например отсюда https://stackoverflow.com/questions/11062330/mysql...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы