这可能是一个非常基本的问题,但我希望有人可以帮忙吗?
假设我有一个MySQL表,其中包含一个名为exampleString的字段,它是一个文本字段
在一个记录中,字段exampleString包含以下文本:
"苹果橘子梨"
现在,我想要做的是(PHP)如下:
执行查询以搜索"苹果橙子梨" - 我可以做到,没问题。
执行查询以搜索" oranges apple pears"并且它将使用字符串"苹果橙子梨"返回记录。在其中 - 我不知道该怎么做。 (注意:如果查询搜索字符串只是"橙子梨"它不应该返回记录)。
我还希望能够使查询不区分大小写,并且我也不确定如何执行此操作(尽管我还没有搜索过)。
答案 0 :(得分:1)
您可以对输入中的每个单词使用PHP for循环并进行SQL查询。
在MySQL中,您可以使用LIKE "%[your_string]%"
搜索字符串内容[your_string]
http://dev.mysql.com/doc/refman/5.7/en/pattern-matching.html
所以,如果你需要匹配'apple oranges pears'和'apples pears oranges',你需要做类似的事情:
LIKE "%apples%" AND LIKE "%oranges%" AND LIKE "%pears%"
因此,您会发现字符串内容apple AND oranges AND pears没有重要性
现在在php中,the explode function转换数组中的字符串
所以,最终代码的例子(根据你的情况调整干净和安全。测试你的vars等)
$string = 'apples oranges pears';
$explode = explode(' ', $string);
$whereString = '';
foreach ($explode as $key => $value) {
$whereString .= ' AND [your_field] LIKE "%'.$value.'%"';
}
echo $whereString;