【发布时间】:2013-02-19 17:48:57
【问题描述】:
Yii 有一个内置的“exists”功能,我不明白我需要使用这个功能的场景。
以下查询将导致 NULL 或活动记录。
Posts::model()->findByPK('100')
这个查询将产生一个布尔值:
Posts::model()->exist(sql)
如果结果为真,我是否需要发出另一个查询?这不是查询的“浪费”吗? (我主要关心性能)
谢谢, 丹尼
【问题讨论】:
Yii 有一个内置的“exists”功能,我不明白我需要使用这个功能的场景。
以下查询将导致 NULL 或活动记录。
Posts::model()->findByPK('100')
这个查询将产生一个布尔值:
Posts::model()->exist(sql)
如果结果为真,我是否需要发出另一个查询?这不是查询的“浪费”吗? (我主要关心性能)
谢谢, 丹尼
【问题讨论】:
函数本身的原因是 性能..findByPk 表示如果找到则将模型加载到变量中,exixts 表示检查是否找到..想象一个你只是必须找出在给定条件下是否存在记录,那么为什么将整个模型实例加载到变量中然后检查它是否为空,而不是直接使用布尔值..
如果你需要模型实例,如果它存在,那么如果ofc没用,那么就像你说的那样直接使用findByPk..
【讨论】: