我在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分配给"僵尸"