2012-08-27 51 views
0

从这样一个表中的值选择字段(这仅仅是在这里):选择,或不基于下一场

p_add | p_add_s | p_phone | p_phone_s | p_user_id //0 = show 1= Hide 
Address| 0  | 12345 | 1   | 1 
Addr | 0  | 12345 | 1   | 2 

我怎样才能做一个选择,如:

select p_add (if p_add_s = 0), p_phone (if p_phone_s=0) from table where p_user_id=1 
or 
    select p_add, p_phone from table where p_user_id=1 (if p_add_s = 0) and (if p_phone_s = 0) 

这些都不正确。我把它们包括在内,这样你就可以得到一个想法。

其实我只需要数据如果与_s值为0

可以这样使用SQL来完成,或者必须用PHP来实现?

回答

1

我认为你正在寻找MySQL的IF语法:

select if(p_add_s=0, p_add, 'Address Private'), if(p_phone_s=0, p_phone, 'Phone Private') from myTable 

如果条件满足,它返回的中间部分,否则,最后一个。

或者,根据您的第二个查询:

select p_add, p_phone from table where p_user_id=1 and p_add_s = 0 and p_phone_s = 0 

注意,这将不会返回那里所有的内部条件,where子句不符合行,所以if语句可能会更好地工作。

0
select p_add, p_phone from table where p_user_id=1 and p_add_s=0 and p_phone_s=0 
0
SELECT p_add FROM yourtable 
WHERE p_user_id = 1 
AND p_add_s = 0 
AND p_phone_s = 0 

不要忘记使用PDO