我想用随机数更新表中所有行的一列。就我的研究而言,默认情况下,Doctrine中没有rand()。我看到的选项是1.添加自定义DQL函数,这将是MySQL特定的,2。使用PHP生成的值更新每一行。
这两种选择对我来说都是不好的做法。有什么我想念的吗?
答案 0 :(得分:0)
我会使用原生查询。它比创建自定义DQL函数简单得多。
$em = getEntityManager();
$tableName = $em->getClassMetadata('Your:Entity')->getTableName();
$em->getConnection()->exec('UPDATE '.$tableName.' SET column=RAND()');
但如果你更喜欢DQL,那就去吧。
但是用PHP做这将是最糟糕的。
数据库不是你每周都要改变的东西,所以不要害怕使用特定于供应商的功能。