【问题标题】:How do I put a WHERE LIKE in to this SQL SELECT?如何在此 SQL SELECT 中添加 WHERE LIKE?
【发布时间】:2012-12-04 18:45:23
【问题描述】:

我有这个 SQL 和 PHP:

$articles = returndata("
     SELECT 
         (SELECT COUNT(*) from blog_posts) as totalcount,
         (SELECT COUNT(*) from comments where assetid = d.assetid) as replies,
         c.name as categoryname,
         d.category as categoryid,
         d.assetid, 
         d.title,
         d.postdate,
         d.articlecontent
     FROM blog_categories c 
         INNER JOIN 
         blog_posts d 
     GROUP BY d.assetid 
     ORDER BY postdate DESC 
         LIMIT " . (($page - 1) * $size) . ", " . $size
, $database);

我还有一个变量 $query,它包含一个多词查询(如“hello world”),我想用它来搜索我的数据库。我已经尝试了正确的事情(我认为),但它一直返回 0。

【问题讨论】:

  • ON 子句也丢失了。
  • 您要搜索哪个表中的哪个字段?没有“搜索 [a] 数据库}”的 SQL 命令。
  • 对不起!我现在明白了,我忘记了。我试图在 blog_posts 表中的标题字段“d.title”中找到结果。理想情况下,我也想在文章内容中搜索,并将排名(即找到字符串的次数)作为额外字段返回......我对这个项目的了解已经超出了我的深度>.

标签: php mysql sql sql-like


【解决方案1】:

试试这个 ::

SELECT 
(SELECT COUNT(*) from blog_posts) as totalcount, 
(SELECT COUNT(*) from comments where assetid = d.assetid) as replies, 
c.name as categoryname, 
d.category as categoryid, 
d.assetid, 
d.title, 
d.postdate, 
d.articlecontent 
FROM blog_categories c 
INNER JOIN blog_posts d on // join condition
// THE WHERE CLAUSE SHOULD BE HERE LIKE column like '%sample word%'


GROUP BY d.assetid ORDER BY postdate DESC LIMIT 

【讨论】:

  • 我仍然收到错误消息?我假设我在这里做一些愚蠢的事情。我不知道如何使用“on”语句(唉),我的代码现在是:$articles = returndata("SELECT (SELECT COUNT(*) from blog_posts) as totalcount, (SELECT COUNT(*) from comments where assetid = d.assetid) as replies, c.name as categoryname, d.category as categoryid, d.assetid, d.title, d.postdate, d.articlecontent FROM blog_categories c INNER JOIN blog_posts d WHERE d.title LIKE '%" . $query . "%' GROUP BY d.assetid ORDER BY postdate DESC LIMIT " . (($page - 1) * $size) . ", " . $size, $database);
  • 对这篇文章感到抱歉...我通常在 Stackoverflow 上做得更好。我有点搞砸了!该错误现已解决。原来是我的数据库处理代码在返回零行时不知道该怎么做。现已解决。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-01
  • 2015-08-01
  • 2011-04-06
  • 2017-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多