如何使用“IN (1,2,3)”与查找全部?
我需要从数据库中获取几个学生,并且我将他们的主键放在以逗号分隔的字符串中。
通常使用 SQL 会是这样的:
$cleanedStudentIdStringList = "1,2,3,4";
SELECT * FROM Student WHERE id IN ($cleanedStudentIdStringList)
Yii 的 ActiveRecord 似乎在生成的 SQL 语句中的绑定参数周围插入单引号,这会导致使用参数绑定时查询失败。
这可行,但不使用安全参数绑定。
$students = Student::model()->findAll("id IN ({$_POST['studentIds']})");
有没有办法仍然使用参数绑定并在单个查询中仅获取几行?
I need to get a couple of Students from the database, and I have their primary keys in a comma-separated string.
Normally using SQL it would be something like:
$cleanedStudentIdStringList = "1,2,3,4";
SELECT * FROM Student WHERE id IN ($cleanedStudentIdStringList)
Yii's ActiveRecord seems to insert a single quote around bound parameters in the resulting SQL statement which cause the query to fail when using parameter binding.
This works, but doesn't use safe parameter binding.
$students = Student::model()->findAll("id IN ({$_POST['studentIds']})");
Is there a way to still use parameter binding and get only a couple of rows in a single query?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您也可以这样做:
并在数组中使用您需要的任何值。
阿列克西
You can do it also that way:
and use in array any values you need.
Aleksy
您还可以使用 findAllByAttributes 方法:
You can use
findAllByAttributes
method also: