全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Yii框架参数化查询中IN查询只能查询一个的解决方法

本文实例讲述了Yii框架参数化查询中IN查询只能查询一个的解决方法。分享给大家供大家参考,具体如下:

在yii框架中使用参数化进行IN查询时,结果不如所愿

$sql =<<<SQL
SELECT id FROM tb WHERE id IN(:ids)
SQL;
$db = GeneralService::getSlaveDB();
$result = $db->createCommand($sql)->query([':ids' => '1013,1015,1017'])->readAll();
print_r($result);

Array
(
  [0] => Array
    (
      [id] => 1013
    )
)

于是翻了yii框架中相关源码,发现采用的是pdo查询,于是又查询了pdo相关资料,知道了原因:不能让占位符代替一组值

SELECT id FROM tb WHERE userid IN ( ? );

既然知道了原因,那么就找到替代的方法,FIND_IN_SET正好可以满足

$sql =<<<SQL
SELECT id FROM tb WHERE FIND_IN_SET(id, :ids)
SQL;
$db = GeneralService::getSlaveDB();
$result = $db->createCommand($sql)->query([':ids' => '1013,1015,1017'])->readAll();
print_r($result);

Array
(
  [0] => Array
    (
      [id] => 1013
    )
  [1] => Array
    (
      [id] => 1015
    )
  [2] => Array
    (
      [id] => 1017
    )
)

简单科普下FIND_IN_SET函数

FIND_IN_SET(str,strlist)

假如字符串str在由N子链组成的字符串列表strlist中,则返回值的范围在 1 到 N 之间。

一个字符串列表就是一个由一些被 ‘,' 符号分开的子链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则   FIND_IN_SET() 函数被优化,使用比特计算。

如果str不在strlist 或strlist 为空字符串,则返回值为 0 。如任意一个参数为NULL,则返回值为 NULL。这个函数在第一个参数包含一个逗号(‘,')时将无法正常运行。

【ps】strlist中由逗号组成的字符串,不能像平常习惯的那样,逗号右边加个空格,那是认不出来的。

更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。


# Yii框架  # 参数化  # 查询  # IN查询  # 只能查询  # 解决方法  # Yii查询生成器(Query Builder)用法实例教程  # Yii不依赖Model的表单生成器用法实例  # Yii框架关联查询with用法分析  # Yii2中使用join、joinwith多表关联查询  # Yii2增删改查之查询 where参数详细介绍  # Yii多表联合查询操作详解  # Yii基于数组和对象的Model查询技巧实例详解  # YII2数据库查询实践  # Yii2实现跨mysql数据库关联查询排序功能代码  # Yii中的relations数据关联查询及统计功能用法详解  # YII2框架中查询生成器Query()的使用方法示例  # 第一个  # 程序设计  # 值为  # 的是  # 是一个  # 知道了  # 相关内容  # 那是  # 感兴趣  # 第二个  # 能让  # 给大家  # 相关资料  # 翻了  # 更多关于  # 所述  # 时将  # 能像  # 正常运行 


相关文章: 如何用好域名打造高点击率的自主建站?  网站设计制作企业有哪些,抖音官网主页怎么设置?  如何在宝塔面板中修改默认建站目录?  如何在云主机上快速搭建多站点网站?  电商平台网站制作流程,电商网站如何制作?  高端建站三要素:定制模板、企业官网与响应式设计优化  建站之星与建站宝盒如何选择最佳方案?  如何快速搭建高效服务器建站系统?  深圳网站制作的公司有哪些,dido官方网站?  如何用PHP快速搭建高效网站?分步指南  常州自助建站工具推荐:低成本搭建与模板选择技巧  网站制作大概多少钱一个,做一个平台网站大概多少钱?  ,在苏州找工作,上哪个网站比较好?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  香港服务器如何优化才能显著提升网站加载速度?  婚礼视频制作网站,学习*后期制作的网站有哪些?  如何用美橙互联一键搭建多站合一网站?  打鱼网站制作软件,波克捕鱼官方号怎么注册?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  如何在建站之星绑定自定义域名?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  如何自定义建站之星网站的导航菜单样式?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  制作旅游网站html,怎样注册旅游网站?  ,如何利用word制作宣传手册?  设计网站制作公司有哪些,制作网页教程?  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?  如何通过商城免费建站系统源码自定义网站主题?  昆明高端网站制作公司,昆明公租房申请网上登录入口?  开心动漫网站制作软件下载,十分开心动画为何停播?  如何将凡科建站内容保存为本地文件?  定制建站策划方案_专业建站与网站建设方案一站式指南  建站之家VIP精选网站模板与SEO优化教程整合指南  如何在宝塔面板中创建新站点?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  如何通过二级域名建站提升品牌影响力?  如何正确选择百度移动适配建站域名?  如何通过NAT技术实现内网高效建站?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  完全自定义免费建站平台:主题模板在线生成一站式服务  三星网站视频制作教程下载,三星w23网页如何全屏?  建站之星价格显示格式升级,你的预算足够吗?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  b2c电商网站制作流程,b2c水平综合的电商平台?  如何在阿里云高效完成企业建站全流程?  建站之星如何优化SEO以实现高效排名?  黑客如何通过漏洞一步步攻陷网站服务器?  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。