2017-04-10 16:28:33 2965次浏览 4条回答 0 悬赏 10 金钱
$Grouporder=Grouporder::find()->where(['state'=>2,'id'=>$id])->asArray()->all();
foreach ($Grouporder as $key=>$value) {
    $map['id'] = array('in',$value['orderId']);
    $Order=Ordermanagement::find()->where($map)->asArray()->all();
}

IN 多条查询语句 不好事儿 求高手指导 谢谢

补充于 2017-04-11 17:03

谢谢 各位 谢谢 你们的回复 😊

补充于 2017-05-02 10:00

我昨天写出来了 ` $default[]='and';

$map['LoanVariety']=['IN'=>'农村小额信用贷款','农贷通'];
$default[]=$map;`

最佳答案

  • pmd 发布于 2017-04-11 08:48 举报
    $articlelist = $model->find()->where(['and',['in','category_id',$arr],['status'=>'1']])->all();
    

    我这里的$arr是一个索引数组。where条件的意思是 status=1和category_id在$arr这个数组里面能找到的条件

    觉得很赞
  • 回答于 2017-04-10 17:26 举报

    把你的$value['orderId']都打印初来,查看一下是否是你预期的值

    5 条回复
    回复于 2017-04-10 18:35 回复

    [1]=> string(7) "1,2,3,4"

    回复于 2017-04-10 18:40 回复
    SELECT * FROM `ordermanagement` WHERE `id` IN ('in', '1,2,3,4')   //打印出来的 SQL 语句 
    
    回复于 2017-04-10 18:43 回复

    只好使用 原始语句

    $Order=Ordermanagement::findBySql("SELECT * FROM `ordermanagement` WHERE id IN ($orderId)")->asArray()->all();
    
    回复于 2017-04-11 12:07 回复

    in: 第一个操作数应为字段名称或者 DB 表达式。第二个操作符既可以是一个数组, 也可以是一个 Query 对象。它会转换成IN条件语句。如果第二个操作数是一个 数组,那么它代表的是字段或 DB 表达式的取值范围。如果第二个操作数是 Query 对象,那么这个子查询的结果集将会作为第一个操作符的字段或者 DB 表达式的取值范围。 例如, ['in', 'id', [1, 2, 3]] 将生成 id IN (1, 2, 3)。 该方法将正确地为字段名加引号以及为取值范围转义。in 操作符还支持组合字段,此时, 操作数1应该是一个字段名数组,而操作数2应该是一个数组或者 Query 对象, 代表这些字段的取值范围。

    手册里的

    回复于 2017-04-11 15:09 回复

    SELECT * FROM ordermanagement WHERE id find_in_set('in', '1,2,3,4')

  • 回答于 2017-04-10 18:00 举报
  • 回答于 2017-04-11 08:55 举报

    你这个in写法好像thinkphp的,,,怪不得我看着好熟悉。。这种问题,你百度一下。就能找到,建议楼主遇事多百度O(∩_∩)O~

    1 条回复
    回复于 2017-04-11 09:47 回复

    说的没错 tp 写法来 写的 :)

您需要登录后才可以回答。登录 | 立即注册
ali
主管

ali 乌鲁木齐

注册时间:2016-12-21
最后登录:2023-11-05
在线时长:17小时34分
  • 粉丝3
  • 金钱10
  • 威望40
  • 积分580

热门问题