ИМЕТЬ или ГДЕ на JSON? - PullRequest
       1

ИМЕТЬ или ГДЕ на JSON?

0 голосов
/ 20 октября 2011

Я хочу сделать "HAVING" для значения json, которое хранится в базе данных с json_encode, это значение персидское слово, но не сделано "HAVING" для него, как это исправить?

row_s как:

row_s id 1: ["All5","\u0648\u06cc\u0632\u0627 8"]
row_s id 2: ["All5","\u0648\u06cc\u0632\u0627 7"]
row_s id 3: ["All5","\u0648\u06cc\u0632\u0627 6"]

Это мой php-код: (вывод: Нет )

$val   = 'ویزا 8';
$query = $this->db->query('SELECT * FROM table HAVING row_s LIKE "%' . $val . '%"');
if ($query->num_rows() > 0) {
    foreach ($query->result() as $val) {
        echo $val->name . '<br>';
    }
} else {
    echo 'There is not';
}

Обновление: Может где значение «$ val» это число или латинское слово со значением json в базе данных, но не для персидского слова.

например, следующий код имеет вывод, и это $ query-> num_rows () = 3.

$val   = 'All5';
$query = $this->db->query('SELECT * FROM table HAVING row_s LIKE "%' . $val . '%"');
if ($query->num_rows() > 0) {
    foreach ($query->result() as $val) {
        echo $val->name . '<br>';
    }
} else {
    echo 'There is not';
} 

1 Ответ

0 голосов
/ 20 октября 2011

Вы сохранили строку json в своей базе данных.Это просто сохранение текста в базе данных.

SQL - это язык для запроса (и более) к базе данных, например, для выбора текстовых полей из базы данных.

Но SQL не знаетЧто касается json, в частности, ключевое слово LIKE не может проанализировать ваш json, а затем применить к нему его регулярное текстовое сопоставление с шаблоном.

Вам необходимо либо сохранить данные в виде простого текста (в нескольких столбцах) или вам нужно запросить все поля, а затем использовать PHP для поиска в ваших данных.

Третий вариант - расширить сервер базы данных для понимания json и предоставить функцию, позволяющую выполнять поискв закодированных в json данных, аналогичных LIKE.

Однако, на самом деле вы только что создали базу данных внутри базы данных, которая имеет такую ​​же цену, как и проблема, с которой вы сейчас сталкиваетесь при выборе нужных данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...