Mysql查询查找项目的一部分


Mysql Query find part of item

我在MYSQL表中有以下项目:《植物大战僵尸免费版》当我搜索"僵尸"或"植物"时,将没有结果。查询使用:

SELECT * FROM `TABLE 1` WHERE `COL 1` LIKE %Plants%
PHP代码:

     $sql = "SELECT * FROM `TABLE 1` WHERE `COL 1` LIKE '%" . $val . "' OR `COL 2` LIKE '%" . $val . "%'";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
        // output data of each row
        while($row = $result->fetch_assoc()) {
            echo $row["COL 1"] . ";" . $row["COL 2"] . ";" . $row["COL 3"] . ";" . $row["COL 4"] . ";" . $row["COL 5"] . ";" . $row["COL 6"] . "<br>";
        }else{
         echo "0 results";}

我如何修改查询,这样我就可以找到"植物大战僵尸免费",当我从它搜索任何部分?

您错过了%

 $sql = "SELECT * FROM `TABLE 1` WHERE `COL 1` LIKE '%" . $val . "%' OR `COL 2` LIKE '%" . $val . "%'";
 .................................................................^

现在,您的查询只搜索COL 1$val结尾的或者COL 2包含$val的。

你必须像这样用引号括起来

SELECT * FROM `TABLE 1` WHERE `COL 1` LIKE '%Plants%'

试试这个…

值的前后使用"%"
 $sql = "SELECT * FROM `TABLE 1` WHERE `COL 1` LIKE '%$val%' OR `COL 2` LIKE '%$val%'";
    $result = $conn->query($sql);

试试这个:

$sql = "SELECT * FROM `TABLE 1` WHERE `COL 1` LIKE '%" . $val1 . "' OR `COL 2` LIKE '%" . $val2 . "%'";
$result = $conn->query($sql);

将$val1分配给"植物",将$val2分配给"僵尸"