LIKE検索を日付とDQLのカテゴリでグループ化する方法を理解できません。
説明:
重みの後にイベントを検索する検索機能があります。次のようになります。
SELECT e as event,
(CASE
(e.name LIKE :searchterm) THEN 10
ELSE 0
END) +
(CASE
WHEN (e.name LIKE :searchtermFull) THEN 5
ELSE 0
END)
AS weight
FROM
\Entities\Event e
WHERE
e.name LIKE :searchterm OR
e.name LIKE :searchtermFull
ORDER BY weight DESC
これは正常に機能しますが、これらの検索結果を(時間ではなく)年と日付でグループ化する必要があるため、アイテムは次のようにグループ化されます。
1月27日:
- イベント1
- イベント2
1月28日:
- イベント3
- イベント4
そして、私はそれを私のカテゴリーにグループ化することもする必要があるので、最終的には次のようになります:
1月27日:
- カテゴリー1
- イベント1
- イベント2
- カテゴリー2
- イベント3
マイデータベースイベントテーブル:
- 名前varchar(255)
- 説明varchar(255)
- 作成日時
- place_id int(11)
- イベント日付日時
- Organiser_id int(11)
- created_user_id int(11)
- カテゴリint(11)
マイデータベースカテゴリテーブル
- id int(11)
- 名前varchar(255)
- 説明varchar(255)
イベントエンティティとEventCategoryエンティティがあり、EventCategoryが行うことは、カテゴリIDをイベントエンティティにバインドすることだけです。
-更新-これまでの私のSQL-
SELECT
c.name,
YEAR(e.eventdate) as year,
MONTH(e.eventdate) as month,
DAY(e.eventdate) as day,
count(*) as total
FROM `events` as e, `eventCategories` as c
WHERE
e.category = c.id
GROUP BY
YEAR(e.eventdate),
MONTH(e.eventdate),
DAY(e.eventdate)
ORDER BY eventdate ASC
DoctrineExtensionsは、オートローダーにこれを書き込むことで含まれます。
$ classLoader = new Doctrine \ Common \ ClassLoader('DoctrineExtensions'、ROOT.DS。 "library"); $ classLoader-> register();