PHP-SQL LIKE子句,带%
数据库:PHP-SQL LIKE子句,带%,php,mysql,Php,Mysql,数据库: +----------------------+ +-KEYWORD-|-ANSWER-----+ +----------------------+ +hi,hello | Hey + +Who,where| example123 + +----------------------+ 文本框中的用户输入: Who are you SQL查询 SELECT answer FROM chat WHERE keyword LIKE '%Who are You%' LIMIT
+----------------------+
+-KEYWORD-|-ANSWER-----+
+----------------------+
+hi,hello | Hey +
+Who,where| example123 +
+----------------------+
文本框中的用户输入:
Who are you
SQL查询
SELECT answer FROM chat WHERE keyword LIKE '%Who are You%' LIMIT 0,1
我得到的输出是空白的
预期产出:
example123
可能您必须分解字符串以生成如下请求:
SELECT answer FROM chat WHERE keyword LIKE '%Who%' OR keyword LIKE '%are%' OR keyword LIKE '%you%' LIMIT 0,1
可能您必须分解字符串以生成如下请求:
SELECT answer FROM chat WHERE keyword LIKE '%Who%' OR keyword LIKE '%are%' OR keyword LIKE '%you%' LIMIT 0,1
虽然您的搜索词等于
您是谁
,但在关键字
列中,您只有问题的第一个单词。我们需要将第一个单词从输入语句中分离出来。然后使用%
通配符将第一个单词与关键字
列进行比较。结果可能是:
$input = $_POST['textInput'];
$exploded = explode(' ', $input);
$to_compare = $exploded[0];
$q = "SELECT answer FROM chat WHERE keyword LIKE '%$to_compare%' LIMIT 0,1";
虽然您的搜索词等于
您是谁
,但在关键字
列中,您只有问题的第一个单词。我们需要将第一个单词从输入语句中分离出来。然后使用%
通配符将第一个单词与关键字
列进行比较。结果可能是:
$input = $_POST['textInput'];
$exploded = explode(' ', $input);
$to_compare = $exploded[0];
$q = "SELECT answer FROM chat WHERE keyword LIKE '%$to_compare%' LIMIT 0,1";
您可以使用此查询获取输出 $qry=“从聊天室中选择答案,其中关键字“%Who%”限制为0,1
输出:-例如123您可以使用此查询获取输出 $qry=“从聊天室中选择答案,其中关键字“%Who%”限制为0,1
输出:-例如123像
'%Who are You%'
将检查包含Who are You
解释如下:
您还可以使用@Ioic解释的查询,如
'%Who is you%'
将检查包含Who is you
解释如下:
您还可以使用@Ioic解释的查询,您应该从手册开始:
'%Who is you%'
匹配任何包含“Who is you”的字符串!在您的表中,关键字
列不包含任何与'%Who is You%'
匹配的字符串!相反,你应该使用%Who%
,%Where%
,%are%
你应该从手册开始:'%Who is you%'
匹配任何包含“Who is you”的字符串!在您的表中,关键字
列不包含任何与'%Who is You%'
匹配的字符串!相反,您应该使用%Who%
,%Where%
,%are%
这将只搜索给定字符串的第一个单词。是的,我知道。但是从用户询问的情况来看,他似乎只对问题的第一个单词感兴趣。@nl-x在对帖子进行否决投票之前,你应该更好地理解问题、答案以及整个场景。这只会搜索给定字符串的第一个单词。是的,我知道。但是从用户询问的情况来看,他似乎只对问题的第一个单词感兴趣。@nl-x在对帖子进行否决投票之前,你应该更好地理解问题、答案以及整个场景。