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を使用して実行する必要がありますか?

4

3 に答える 3

1

mysql IF 構文を探していると思います。

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

条件が満たされた場合は中間セクションを返し、それ以外の場合は最後のセクションを返します。

または、2 番目のクエリに基づいて:

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

これは、where 句内のすべての条件が満たされていない行を返さないことに注意してください。そのため、if ステートメントの方が適切に機能する可能性があります。

于 2012-08-27T09:37:06.130 に答える
0
select p_add, p_phone from table where p_user_id=1 and p_add_s=0 and p_phone_s=0
于 2012-08-27T09:36:01.367 に答える
0
SELECT p_add FROM yourtable
WHERE p_user_id = 1
AND p_add_s = 0
AND p_phone_s = 0

PDOを使用することを忘れないでください。

于 2012-08-27T09:37:32.537 に答える