目前我能夠在CodeIgniter中做如下的WHERE句子:
$builder = $db->table('mytable') 。
$builder->選擇(*)。
$builder->where('age >='.$params['se-param'])。
我需要做的是一個WHERE陳述句,它只適用于IF陳述句為真的情況。類似于:
(IF gender = 'Male', apply these rows the following where) $builder->where('age >='.$params['some-param']) 。
(IF gender = 'Female', apply these other rows, this where and not the first one) $builder-> where('age >='. $params['some-other-param'])。)
還要注意,['某-引數']和['某-其他-引數']不會一直存在。我知道這可以用OR句子來實作,但是如果['某-其他-引數']沒有被設定,那么查詢將是這樣的:
$builder->where("age >="/span>. $params['some-param']." AND gender = 'Male'")。)
這將不包括任何性別='女性'的行,我也需要這樣的行。
我對如何實作這一目標毫無頭緒。任何方向都會得到贊賞。
uj5u.com熱心網友回復:
像這樣的東西不是可以嗎?
--兩個年齡過濾器都設定了。
select *
from my_table
where (
(gender = 'Male and age >= 20)
或
(性別= 'Female and 年齡>= 30)
)
--只設定男性過濾器。
select *
from my_table
where (
(gender = 'Male and age >= 20)
or
性別 = 'Female')
)
--只設定了女性過濾器。
select *
from my_table
where (
(gender = 'Female and age >= 20)
or 或
性別 = 'Male')
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/311021.html
標籤:
