代码之家  ›  专栏  ›  技术社区  ›  TheWelshManc

如何使用带有空格的字符串的SQL Select Where Like?[复制品]

  •  1
  • TheWelshManc  · 技术社区  · 7 年前

    这个问题已经有了答案:

    例如,当我搜索“hello”时,我会得到所有使用“hello”的实例。但是,如果我搜索“你好,我的”,我只会得到两个词相互跟随的实例。

    $search = 'hello my';
    $search = explode(' ', $search);
    

    一旦我爆炸了它,我不知道该怎么做,我尝试使用一个for循环,就像这样:

    for($i = 0; $i < count($search); $i++) {
        $search = $search[$i];
    }
    

    我还尝试将我的SQL select放入for循环中,这样它可以进行多次搜索,但没有起作用。我的SQL语法如下:

    SELECT * FROM table WHERE string LIKE '%$search%';

    1 回复  |  直到 7 年前
        1
  •  2
  •   Nick SamSmith1986    7 年前

    您可以尝试这样做来搜索搜索字符串中的任何单词:

    $search = 'hello my';
    $search = explode(' ', $search);
    $query = "SELECT * FROM table WHERE string LIKE '%" . implode("%' OR string LIKE '%", $search) . "%'";
    echo $query;
    

    输出:

    SELECT * FROM table WHERE string LIKE '%hello%' OR string LIKE '%my%'
    

    如果你想搜索 全部的 搜索字符串中的单词,更改 OR 在上述代码中 AND 即

    $query = "SELECT * FROM table WHERE string LIKE '%" . implode("%' AND string LIKE '%", $search) . "%'";
    echo $query;
    

    输出:

    SELECT * FROM table WHERE string LIKE '%hello%' AND string LIKE '%my%'
    

    Demo on 3v4l.org