2012-12-04 20 views
-2

我有這樣的SQL和PHP:如何將一個WHERE LIKE置入此SQL SELECT?

$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); 

我也有一個變量,$查詢,其中包含了多字查詢(例如「hello world」),我想搜索我的數據庫與此有關。我已經試過了正確的事情(我認爲),但它一直返回0。

+0

的'ON'子句是丟失了。 –

+0

你想在哪個表中搜索哪個字段? –

+0

抱歉,我現在看到我忘記了這一點,我試圖在blog_posts表中的標題字段「d.title」中找到結果。Idealy,我也想搜索articlecontent,並且返回等級(即字符串被找到的次數)作爲額外的字段......我正在從這個項目的深度中得到>< – Forest

回答

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 
+0

我還在我不知道如何使用「on」語句(唉),我的代碼現在是:'$ articles = returndata(「SELECT(從blog_posts中選擇COUNT(*)) as totalcount,(SELECT COUNT(*)from where where assetid = d.assetid)as a reply,c.name as categoryname,d.category as classid,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 ,$ dat基地);' – Forest

+0

告訴我們錯誤,我們不能猜出它是什麼。 – Andrew

+0

對不起,這篇文章...我通常更好的Stackoverflow。我有點搞砸了!該錯誤現在已解決。原來,這是我的數據庫處理代碼不知道當它返回零行時該怎麼辦。這現在已經解決了。 – Forest