原则:用随机值填充列

时间:2013-11-20 00:39:20

标签: php doctrine-orm

我想用随机数更新表中所有行的一列。就我的研究而言,默认情况下,Doctrine中没有rand()。我看到的选项是1.添加自定义DQL函数,这将是MySQL特定的,2。使用PHP生成的值更新每一行。

这两种选择对我来说都是不好的做法。有什么我想念的吗?

1 个答案:

答案 0 :(得分:0)

我会使用原生查询。它比创建自定义DQL函数简单得多。

$em = getEntityManager();
$tableName = $em->getClassMetadata('Your:Entity')->getTableName();
$em->getConnection()->exec('UPDATE '.$tableName.' SET column=RAND()');

但如果你更喜欢DQL,那就去吧。

但是用PHP做这将是最糟糕的。

  • 您必须先获取所有记录
  • 您必须逐个更新每一行

数据库不是你每周都要改变的东西,所以不要害怕使用特定于供应商的功能。