所以我有这个MySQL查询:
$search = $_POST['search'];
$SQL = "SELECT * FROM `data` WHERE name='$search';
$rs = mysqli_query($dbconfig, $SQL);
我使用此代码将数据搜索到数据库中,并使用表单提交的单词。问题是,如果搜索词与数据库中的数据匹配,则查询仅显示结果。
例如,如果我有一个名为advertisement.png
的文件并且我搜索此文件,则只有在我搜索完全相同的单词时才会显示该文件。
如果我搜索advertisement.png
,则会显示advertisement.png
,但如果我搜索advertisement
则会显示"advert"
。我想要的是搜索与表单中提供的关键字相似的数据。
因此,如果我搜索_INTERNAL_KEY_
,则会显示与此字词相似的结果。
提前致谢。
答案 0 :(得分:0)
使用LIKE
运算符,结尾为%
$search = $_POST['search'];
$SQL = "SELECT * FROM `data` WHERE name LIKE '$search%';
$rs = mysqli_query($dbconfig, $SQL);
答案 1 :(得分:0)
您应该使用Like
运营商。
守则将
$search = $_POST['search'];
$SQL = "SELECT * FROM `data` WHERE name LIKE '%$search%';
$rs = mysqli_query($dbconfig, $SQL);
答案 2 :(得分:0)
对两端使用LIKE运算符和%,如下所示
$SQL = "SELECT * FROM `data` WHERE name LIKE '%$search%';
答案 3 :(得分:0)
您在secrch值的开头和结尾使用了%。
SELECT * FROM Customers WHERE Country LIKE '%land%';
答案 4 :(得分:0)
Ther也是一些SQL函数,用于比较你可以使用的字符串,如STRCMP(str1,str2),如果两个字符串相等则返回0
答案 5 :(得分:0)
$ sql ="从table_name名称中选择*,例如'%search_key%' &#34 ;;
此处%表示您从左侧和右侧键入的所有关键字。任何与之匹配的关键字都会为您提供结果