как подсчитать совпадающие ключевые слова, используя select в mysql codeigniter php? вот моя таблица
Ex. предполагая, что ключевые слова для поиска да, тест
messages table id | title | msg |date ---+-----------+-------------------+-------------+-- 1 | test1 | yes | 2016-06-01 // 2 match keywords 2 | yes1 | no | 2016-06-02 // 1 match keywords 3 | test2 | no | 2016-06-03 // 1 match keywords 4 | yes2 | yes yes yes | 2016-06-04 // 4 match keywords 5 | yesyes3 | yes yes yes yes | 2016-06-05 // 6 match keywords
теперь нужно отобразить его с помощью count_match column
id | title | msg |date |count_match ---+-----------+-------------------+------------+------------------- 1 | test1 | yes | 2016-06-01 | 2 2 | yes1 | no | 2016-06-02 | 1 3 | test2 | no | 2016-06-03 | 1 4 | yes2 | yes yes yes | 2016-06-04 | 4 5 | yesyes3 | yes yes yes yes | 2016-06-05 | 6
и для массива он должен отображаться следующим образом:
array ( [0] => array ( [id] => 5 [title] => yesyes3 [msg] => yes yes yes yes [date] => 2016-06-05 [match] => 6 ) [1] => array ( [id] => 4 [title] => yes2 [msg] => yes yes yes [date] => 2016-06-04 [match] => 4 ) [2] => array ( [id] => 1 [title] => test1 [msg] => yes [date] => 2016-06-01 [match] => 2 ) [3] => array ( [id] => 3 [title] => test2 [msg] => no [date] => 2016-06-03 [match] => 1 ) [4] => array ( [id] => 2 [title] => yes1 [msg] => no [date] => 2016-06-02 [match] => 1 ) )
и в настоящее время мой код в получении для этого
$match = array('test','yes'); $orderbyString1 = ""; $orderbyString = ""; $likestr = ""; foreach($match AS $value) { $orderbyString .= "IF(m.title LIKE '%".$value."%' OR m.msg LIKE '%".$value."%',1,0)+"; $likestr .= "m.title LIKE '%".$value."%' OR m.msg LIKE '%".$value."%' OR "; } $orderbyString = substr($orderbyString, 0, -1); $likestr = substr($likestr, 0, -4); $this->db->select('m.*, ('.$orderbyString.') as count_match'); $this->db->from('messages m'); $this->db->where($likestr." ORDER BY ".$orderbyString." DESC"); $query = $this->db->get(); $results = $query->result_array(); print_r($results);exit;
Есть ли способ выбора для отображения правильного count_match с использованием кода php codeigniter? потому что в настоящее время он отображает 1 и 2 под count_match.
Благодаря!