【发布时间】:2024-04-20 02:45:01
【问题描述】:
我不知道如何将我的 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();
【问题讨论】:
标签: doctrine doctrine-orm dql