2010-08-23 56 views
0

以下查询运行良好。我现在想用它来搜索结果。我希望通过这一修改返回相同的结果:修改查询,以便一个字段必须包含变量

字段s.title在其中的某个位置有变量$find。即,字段s.title。并非必须完全等于$find,但它必须包含一个等于$find的单词。

我该怎么做?

由于提前,

约翰

$sqlStr = "SELECT s.loginid, s.title, s.url, s.displayurl, s.datesubmitted, l.username, 
    s.submissionid, COUNT(c.commentid) countComments, 
    GREATEST(s.datesubmitted, COALESCE(MAX(c.datecommented), s.datesubmitted)) AS most_recent 
FROM submission s 
INNER JOIN login l ON s.loginid = l.loginid 
LEFT OUTER JOIN comment c ON s.submissionid = c.submissionid 
GROUP BY s.submissionid 
ORDER BY most_recent DESC 
LIMIT $offset, $rowsperpage"; 
+0

怎么办你的意思是特定的y通过一个“单词”? – 2010-08-25 18:32:13

回答

1
$sqlStr = "...WHERE s.title LIKE '%" . $find . "%'"; 

LIKE使用通配符来匹配值

+0

对OP的注意 - 要小心:这可能容易受到SQL注入的影响。 – 2010-08-25 18:32:39

0

就在GROUP BY子句添加以下行:

WHERE s.title LIKE '%" . mysql_real_escape_string($find) . "%' 
相关问题