我有一个表名首选项,这里有多列但我只对两列user_preferences_name
和user_preferences_status
感兴趣
注意plz 在user_preferences_name列中有多个标志,如
user_preferences_name user_preferences_status phone_service_id
a 1 555
b 0 456
c 0 236
d 1 122
e 1 456
f 0 777
g 0 555
h 0 888
i 1 112
. . .
. . .
. . .
有许多user_preferences_name我只需要(a,b,f,q,w)及其各自的user_preferences_status(1,1,0,1,0)
我在做什么基本上是我创建一个html表单,其中有5个不同的div我每个div有2个单选按钮。 为一个:- 如果user_preferences_status == 1而不是启用单选按钮将被设置,则其他智能禁用将被设置为相同的5个潜水和单选按钮。 我尝试了什么:
class Prefrances extends Zend_Db_Table{
function Get_User_Prefrences($phone_service_id){
$DB = Zend_Db_Table_Abstract::getDefaultAdapter();
$select = $DB->select()
->from('user_preferences' , array('user_preferences_name','user_preferences_value'))
->where('phone_service_id = ?', $phone_service_id)
->where('user_preferences_name = ?', 'a')
->where('user_preferences_name = ?', 'b')
->where('user_preferences_name = ?', 'f')
->where('user_preferences_name = ?', 'q')
->where('user_preferences_name = ?', 'w');
return $select;
}
}
result = no rows
我认为我的逻辑错了你能指导我在这里需要什么,
一般的mysql查询也适用我将其更改为zend
答案 0 :(得分:0)
$select = $DB->select()
->from('user_preferences' , array('user_preferences_name','user_preferences_value'))
->where('phone_service_id = ?', $phone_service_id)
->where('user_preferences_name IN (?)', array('a', 'b', 'f', 'q', 'w'));
答案 1 :(得分:0)
你创造了一个像下雨,不下雨,这从来都不是真的。 在你的情况下
SELECT user_preferences_name, user_preferences_value FROM user_preferences
WHERE
phone_service_id = $phoneserviceid
AND user_preferences_name = 'a'
AND user_preferences_name = 'b'
AND user_preferences_name = 'f'
AND user_preferences_name = 'q'
AND user_preferences_name = 'w';
从来都不是真的。 您可以使用像garvey所说的子选择,或者如果它是一个“始终”的静态子集,您可以添加一列来标识此子集