我有一個博客類型的應用程序。它包含帶有標籤的文章。Laravel用RLIKE查詢以匹配字符串中的確切單詞
表 - tags
|id|tag |
----------------
|1 |css |
|2 |css-library|
|3 |html |
|4 |pre-css |
|5 |scss |
表 - articles
|id|tags |article|
-----------------------------------
|1 |css, html, javascript |xxxxxxx|
|2 |css-library, scss |xxxxxxx|
|3 |html, css, bootstrap |xxxxxxx|
我有以下查詢,找出
$result = DB::table('tags')
->leftjoin('articles', 'articles.tags', 'rlike', 'tags.tag')
->selectRaw('tags.tag, count(articles.id) as total')->where('articles.public', 1)
->groupBy('tags.tag')
->orderBy('total', 'desc')
->get();
當它返回的標籤陣列,其總使用。我收到錯誤的數據。例如在標籤css
的情況下,我得到3
,而我應該得到2
。查詢計數css-library
爲css
。
請幫我解決這個問題。謝謝
你爲什麼不使用 「article_tag」 表?您是指 – sam12
?我沒有任何其他表... –
我的意思是一個manytomany關係︰https://laravel.com/docs/5.4/eloquent-relationships#many-to-many – sam12