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


SQL query that search in multiple columns multiple words

我有一个问题找不到答案。

我希望用户输入单词,每次按enter键时,我都会将单词发送到服务器以搜索

我需要我的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;
}

我确信谷歌上有答案,但我的英语不是很好(我认为:/),

感谢您的帮助

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

您可以在多个列上执行上面的搜索如果您想在多个表上执行此操作,可以运行3个子查询并使用并集。请参阅此处