在多列中搜索多个单词的SQL查询

时间:2013-12-02 16:41:53

标签: php mysql

我有一个问题,我无法找到答案。

我希望用户输入单词并在每次按下时按下我将单词发送到服务器进行搜索

我需要我的sql在3个表中搜索:

Products表:

PRODUCT NAME, PRODUCT DESCRIPTION, PRODUCT TAGS

User表:

USERNAME, USER EMAIL

user-info表:

ADDRESS, LANGUAGE

让我们说

 $d = array('0'=>'cell phone','1'=>'lightweight','2'=>'brasil','3'=>'nokia');

我需要所有的SQL都能搜索到处的所有内容

这是我到达的最接近的地方,我只看一张桌子和一张头,我不知道该怎么做。

public function getAllByTags($d){
    $sql = 'SELECT * FROM '.TBL_WORKS.' WHERE tags ';
    for($i = 0; $i < sizeof($d);$i++){
        $sql .= 'LIKE \'%'.$d[$i].'%\'';
        if(sizeof($d) != 1  && $i != sizeof($d)-1 && $i != sizeof($d)){
            $sql .= ' OR ';
        }
    }
    $query = $this->db->query($sql);
    foreach($query->result_array() as $row){
        $q[] = $row;
    }
    return $q;
}

我确定在Google的某个地方有答案,但我的英语不太好(我想:/),

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE %yourstring

您可以在多个列上进行上述搜索 如果你想在多个表上执行它,你可以运行3个子查询并使用union。 see here