我有一个非常复杂的问题,我和我的同事今天已经讨论了很长时间,我们似乎无法得到答案,想知道这里是否有人有一个我们错过的好主意。
$tags=mysql_real_escape_string($_GET["tags"]);
$tags="SELECT * FROM i WHERE tip LIKE '%".$tags;
$tags=str_replace(",","%' OR tip LIKE '%",$tags);
$tags=$tags."%'";
$qtags = mysql_query($tags) or die(mysql_error());
示例:$ tags ='word,phrase,term,foo,bar,anything'
标签从用户编写的段落中提取,然后与存储在“i”(sql数据库)中的段落进行比较。
我们面临的问题是如何识别哪个/哪个'标签'(在标签字符串之外)导致了结果。
示例:结果段落就像字符串$ tags中的'foo'标签,即'word,phrase,term,foo,bar,anything'我们如何识别foo作为原因?
答案 0 :(得分:2)
您可以尝试这样的事情:
SELECT
CASE WHEN tip LIKE '%foo%' then 'foo'
WHEN tip LIKE '%bar%' then 'bar'
WHEN tip LIKE '%anything%' then 'anything'
END as MatchedTag,
i.*
FROM i
WHERE tip LIKE '%foo%'
OR tip LIKE '%bar%'
OR tip LIKE '%anything%'
需要根据您当前查询的$tags
变量生成。