thinkphp5 一个字段对应多个模糊查询

本文探讨了在PHP中如何灵活地使用动态SQL和数组条件组合来构建复杂的查询语句,通过实例展示了如何利用foreach循环和array_unshift方法实现多条件的高效拼接,避免了硬编码SQL带来的维护难题。
摘要由CSDN通过智能技术生成
 $condition['kname']  = array(array('like','%保健%'), array('like','%护膝%'), array('like','%保健护膝护腰护颈%'), 'or'); 

如果是动态的多个条件可以如下:

                $condition['question'] = array('or');
                foreach ($keyword as $value) {
                   array_unshift( $condition['question'], array('like', '%'.$value.'%'));
                }

使用原生拼接,则如下,显然没有上述方法好

                $sql = 'select count(*) from '.$item['table_name'].' where ';
                foreach ($keyword as $value) {
                    $sql .= ' `question` like '.'"%'.$value.'%"'.' or';
                }
                $sql = substr($sql, 0, -2);
                $sql.= ' and is_delete=0';
                $item_total = Db::query($sql);
                $data[$key]['total'] = $item_total[0]['count(*)'];

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值