我有這個SQL是由別人的幫助。得到所有標籤與sql查詢
$sql ="
select e.*, i.*, group_concat(t.tag separator ',') as tag_list
from nv_entries e
JOIN nv_tags t on t.entrie_id = e.id
LEFT JOIN nv_images i on i.entrie_id = e.id
where t.tag in ($tag_list)
group by e.id
having count(t.id) = $num_tags ";
結果是這樣的(我只顯示一個entrie在這裏,可能是更多):
[1] => Array
(
[id] => 2
[band] => Kids for Cash
[album] => No More Walls E.P.
[label] =>
[year] => 1986
[text] => Text about album kids for cash.
[entrie_id] => 2
[source] => img02_9lch1.png
[tag_list] => tree
)
對於標籤,我必須表明,entrie的所有標籤和突出的標記,用於獲得結果的地方。在這種情況下,[tag_list] => tree
僅顯示一個標籤,即在搜索字段中使用的標籤。我的問題是,我怎麼能得到這樣的結果?:
...
[tag_list] => tree, green, foo, bar
[used_tags] => tree
)
作爲陣列還不錯,但後來也請當它是一個數組只是一個項目。
你的查詢已經這樣做了。但是由於'HAVING'子句,您將結果限制爲只有具有特定數量標籤('$ num_tags')的結果。嘗試刪除'HAVING'子句並查看它是否可以正常工作。 –
現在更清楚了。我認爲你們正在嘗試2種相互排斥的事情:1.獲得所有搜索結果(包括count()...)2.獲得所有搜索結果的標籤 –
yes伊萬正確! :) – clankill3r