【发布时间】:2012-03-31 17:52:57
【问题描述】:
我有这样的代码:
function search_keyword(){
$keyword = $this->db->escape_like_str(trim($_POST['keyword']));
$sql = " ( SELECT name, id_global_info AS id, body AS body, tag AS tag ,info_type_id AS info_type, \"global_info\" AS mytable FROM global_info WHERE ";
$sql .= " MATCH (name, body, tag) AGAINST ( '$keyword') ";
$sql .= " ) UNION ALL ";
$sql .= " ( SELECT name, id_person AS id, surname AS body, info AS tag , location AS info_type, \"person\" AS mytable FROM person WHERE ";
$sql .= " MATCH (name, surname, info) AGAINST ( '$keyword' ) ";
$sql .= " ) UNION ALL ";
$sql .= "( SELECT name, id_event AS id, body AS body, caffe_id AS tag , date AS info_type, \"event\" AS mytable FROM event WHERE ";
$sql .= " MATCH (name, body) AGAINST ( '$keyword' ) ";
$sql .= " ) UNION ALL ";
$sql .= "( SELECT name, id_caffe AS id, description AS body, adress AS tag, location_id AS info_type, \"caffe\" AS mytable FROM caffe WHERE ";
$sql .= " MATCH (name, description) AGAINST ( '$keyword' ) ";
$sql .= " ) ";
$q = $this->db->query($sql);
return $q = $q->num_rows() == 0 ? FALSE : $q->result();
}
如何计算每行的结果数,然后按计数结果排序?
示例: 我想搜索词 car - 第一排有名字 car,并且在正文中出现了 7 次 car,在第二排中出现了 2 次 car。我想计算找到单词 car 的次数,然后按该计数结果对结果进行排序。
【问题讨论】:
-
哭,数据库,哭。
-
我更新了问题。 OZ 我只是 MySQL 的初学者。目前这种方式对我有用,但是当我更多地学习 MySQL 时,我将重新制作查询。无论如何,您对如何修复查询有什么建议吗?
-
我认为你最好使用 PHP:
-
“每行”是什么意思?您是指每个联合查询吗?
标签: php mysql codeigniter-2