【发布时间】:2014-04-12 10:28:23
【问题描述】:
数据库:
id | name | // ...
====================
1 | London |
2 | Paris |
3 | Moscow |
4 | New York |
// ...
文字:
This is a big city. I live in this town.
I like the name of city. 'New York' is very cool.
However, I have to go to Moscow this summer.
// ...
数据库中有很多记录。
文字是用各种语言编写的。
我想获取与文本相关的记录。
在这种情况下,我想获取“纽约”和“莫斯科”的记录。
我正在使用 Doctrine2 ORM 和 DQL。
而我的数据库一般是mysql。
是否可以通过使用 DQL 来实现?
更新
城市实体:id、名称、人口创建日期等...
id | name | population | // ...
====================================
1 | London | 1,2448,3938|
2 | Paris | 1,8759,4844|
3 | Moscow |12,8450,3748|
4 | New York | 8,4795,8558|
// ...
文章实体:id、body、author、date_created 等...
id | body | // ...
============================================================
1 | This is a big city. I live in this town. |
| I like the name of city. |
| 'New York' is very cool. |
| However, I have to go to Moscow this summer.|
| // ... |
2 | We bought a house in London. //... |
3 | I go to Canada this weekend. //... |
4 | Weather in Africa today is too bad. //... |
// ...
无论是来自文件还是数据库,文本都很好。
public function findOneById($id)
{
$query = $this->getEntityManager()->createQuery('
SELECT a, u
FROM MyArticleBundle:Article a
LEFT JOIN a.author u
WHERE a.id = :id
')
->setParameter('id', $id);
return $this->try_catch($query);
}
or
$article = file_get_contents('example.txt');
然后我把它带到显示器上。
{{ article }} or {{ article.body }} etc...
此时,如何获取与本文相关的城市数据?
是否需要复杂的数据库配置?
文本和实体(在本例中为“城市”数据)没有关联。
是否有可能获得文本或字符串中出现的数据?
如:SELECT c FROM MyExampleBundle:City c WHERE c.name appear in ({$text});
虽然我知道这个例子是不可能的,但我想知道在 DQL 中是否有一种方法可以轻松获得。
【问题讨论】:
-
是否要获取
name或text字段包含“纽约”和“莫斯科”的记录?请添加有关您的实体的更多信息,我们无法在没有实体名称的情况下构建查询。 -
感谢您的评论。我添加了上面的描述。
-
您问题的第一部分是否仍未得到解答?我建议将最后一个问题移至一个新问题。如果没有关于实体如何关联的信息,很难回答最后一个问题。
-
对不起我的英语,我现在不知道它是否需要复杂的数据库配置。我的问题很简单。文本和实体(在本例中为“城市”数据)没有关联。我是否有可能获得出现在文本或字符串中的数据?如:
where city.name in ({$text})。虽然我知道这个例子是不可能的,但我想知道在 DQL 中是否有一种方法可以轻松获得类似的。 -
请再次阅读您的问题,很难理解您的问题的意义何在。请参阅doctrine2 documentation about association 来关联您的两个实体。
标签: mysql symfony doctrine-orm dql doctrine-query