我想用Symfony2中的數組進行查詢,我遇到了一些問題。Symfony2查詢數組匹配
我有兩個實體與一個數組字段(我用它作爲標記字段)。我的意圖是,當我有Entity1的對象時,我會查詢數據庫以選擇至少具有一個公共標記的實體對象。任何人都知道我該怎麼做?
我還想知道是否有可能將盡可能多的匹配結果排序爲低(即那些有更多標籤共同出現的人)。實體結構的
例子:
Entity1:
- id = 1
- tags = {'Football', 'Soccer', 'Premier Leage'}
Entity2:
- id = 2
- tags = {'Football', 'Hockey', 'Tennis'}
非常感謝你們!
UPDATE:
現在,我有一個ENTITY1和ENTITY2與多對多的實體,稱爲標籤。現在,這個SQL得到我正確的ENTITY2 ID:
SELECT e2.entity2_id, COUNT(e2.entity2_id) AS common_tag_count
FROM entity2_tags AS e2
INNER JOIN entity1_tags AS e1 ON e2.tags_id = e1.tags_id
WHERE e1.entity1_id =3
GROUP BY e2.entity2_id
HAVING e2.entity2_id !=2
ORDER BY COUNT(e2.tags_id) DESC
現在,我不能合併兩個表中的簡單與DQL JOIN,因爲DQL我們不能使用自動學說表(entity1_tags和entity2_tags)。
任何人都知道如何將SQL代碼轉換爲DQL?
我已經想過使用單獨的表的可能性,而且我也有同樣的問題。你能解釋一下使用單獨表的過程嗎? – Mateu