在MySQL查询中按相似性搜索单词

时间:2016-10-23 08:09:55

标签: php mysql

所以我有这个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_,则会显示与此字词相似的结果。

提前致谢。

6 个答案:

答案 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 ;;

此处%表示您从左侧和右侧键入的所有关键字。任何与之匹配的关键字都会为您提供结果