supplier:供應(yīng)商dealer:經(jīng)銷商
select * from table
where
if(supplier!=0){ //當(dāng)供應(yīng)商不為0時(shí),goods_id使用供應(yīng)商的goods_id
goods_id=supplier_goods
}
else(dealer!=0){ //當(dāng)經(jīng)銷商不為0時(shí),goods_id使用經(jīng)銷商的goods_id
goods_id=dealer_goods
}
可以有這種寫法嗎? tp中又該怎么寫?
7 回答

烙印99
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
//大概這樣,只是個(gè)大概:
if($supplier !==0 ){ //當(dāng)供應(yīng)商不為0時(shí),goods_id使用供應(yīng)商的goods_id
$where = 'goods_id=supplier_goods';
}else($dealer !== 0){ //當(dāng)經(jīng)銷商不為0時(shí),goods_id使用經(jīng)銷商的goods_id
$where = 'goods_id=dealer_goods';
}
$data = $mysql->query("select * from table where {$where}");
建議將判斷邏輯放在前面,讓SQL一目了然

森欄
TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
$where['goods_id'] = ($supplier != 0) ? $supplier_goods : $dealer_goods;
Db::table('table')->where($where)->select();

桃花長(zhǎng)相依
TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊
定義一個(gè)變量來(lái)存儲(chǔ)你的兩個(gè)條件,把這個(gè)變量放在where后

素胚勾勒不出你
TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊
1.將條件直接寫在where里面;
2.將條件寫在變量,然后where里面是該變量;
3.直接用query。
- 7 回答
- 0 關(guān)注
- 978 瀏覽
添加回答
舉報(bào)
0/150
提交
取消