Ich habe eine Blog-App. Es hat Artikel mit Tags.Laravel Abfrage mit RLIKE das genaue Wort aus einer Zeichenfolge
Tabelle - tags
|id|tag |
----------------
|1 |css |
|2 |css-library|
|3 |html |
|4 |pre-css |
|5 |scss |
Tabelle - articles
|id|tags |article|
-----------------------------------
|1 |css, html, javascript |xxxxxxx|
|2 |css-library, scss |xxxxxxx|
|3 |html, css, bootstrap |xxxxxxx|
ich die unten Abfrage haben
$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();
, um herauszufinden, wenn es um das Array von Tags mit seinen insgesamt zurück benutzen. Ich bekomme falsche Daten. Zum Beispiel im Fall des Tags css
bekomme ich 3
, während ich 2
bekommen sollte. Abfragezählung css-library
als css
.
Bitte helfen Sie mir, das zu beheben. Danke
warum Sie keine "article_tag" Tabelle verwenden? – sam12
meinst du? Ich habe keine andere Tabelle ... –
Ich meine eine Viele-Beziehung: https://laravel.com/docs/5.4/eloquent-relationships#many-to-many – sam12