如何使用 IN & YII Active Record 中的 Between 子句?
我想在活动记录中编写以下查询。
SELECT *
FROM `User`
WHERE `UserId`
IN ( 6, 7, 8, 9 ) ;
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我想在活动记录中编写以下查询。
SELECT *
FROM `User`
WHERE `UserId`
IN ( 6, 7, 8, 9 ) ;
谢谢
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(7)
您可以使用
CDbCriteria
语句:You can use
CDbCriteria
statement:您可以将数组作为特定属性的值,如下所示(未经测试):
You can put your array as a value for a specific attribute, like this (no tested):
如果您想更快地获得查询,请使用 Command Builder:
要通过 CActiveRecord 获取它,请使用 findAllByAttributes
但它将获得具有所有关联关系的 User 的完整对象,因此速度较慢。
If you want to get your query faster, use Command Builder:
To get it via CActiveRecord, use
findAllByAttributes
But it will get full object of User with all associated relations, so it's slower.
您可以通过 CDbCriteria 使用 IN 和 BETWEEN 语句:
这将导致如下 SQL 查询:
注意 第 4 个参数 OR /www.yiiframework.com/doc/api/1.1/CDbCriteria#addBetweenCondition-detail" rel="nofollow noreferrer">addBetweenCondition() 方法;如果缺少它,将应用默认的 AND 将该条件连接到 WHERE 查询的其余部分。
PS 严格来说,这些
addBetweenCondition()
和addInCondition()
方法应该添加到现有条件中。因此,您可能需要首先设置标准的初始条件,如下所示:You might use both IN and BETWEEN statements thru CDbCriteria:
this will result in SQL query like this:
Note the 4-th paramenter OR in addBetweenCondition() method; missing it, the default AND will be applied to concatenate that condition to the rest of WHERE-query.
P.S. Strictly speaking those
addBetweenCondition()
andaddInCondition()
methods should be added to an existing condition. So, you might need to set first a criteria's initial condition like this:我仍然使用这种方式:
I still using this way:
yii 中有一个名为
findAllBySql
的函数来运行 sql 查询并获取输出。“$value”将以数组形式返回结果。要获取这些值,您可以使用以下方法。
(或者)
There is an function called
findAllBySql
in yii to run sql query and get the outputs.The "$value" will return the result in a array. To get the values you can use the following method.
(or)
您可以使用addInCondition,也可以使用compare方法。
Either you can use addInCondition or you can also use compare method.