我不知道如何将我的 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日:
- 第一类
- 活动一
- 活动 2
- 第 2 类
- 活动 3
我的数据库事件表:
- 名称 varchar(255)
- 描述 varchar(255)
- 创建日期时间
- place_id int(11)
- 事件日期日期时间
- 组织者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();