2016-08-17 5 views
0

私は新しいメッセージに関する通知のクエリを作成しています。ユーザーがメッセージを送信し、受信者がそれをまだ読み取っていない場合、read列の値は0です。もちろん、受信者がメッセージをクリックしてそれを読むと、データベースreadvalue = 1で更新されます。Wordpress MySQL - クエリで値が読み取られない= '0'

私の問題は、このクエリを使用していることである:私は「1」で値を変更した場合、私はすべてのメッセージを読んでもらうながら

$check_notification = $wpdb->get_results(" 
select * 
    from {$wpdb->prefix}vp_pms_messages 
    join {$wpdb->prefix}vp_pms_group_users 
    on {$wpdb->prefix}vp_pms_messages.id = {$wpdb->prefix}vp_pms_group_users.message_id 
where {$wpdb->prefix}vp_pms_group_users.to_username = '{$session_uid}' 
    and {$wpdb->prefix}vp_pms_group_users.read = '0' 
group 
    by {$wpdb->prefix}vp_pms_group_users.group_id"); 

{$wpdb->prefix}vp_pms_group_users.read = '0'は、任意のメッセージが表示されません。

私は私のphpMyAdminを通して見るので、それは値1

と値0とメッセージを持つメッセージがあることを、データベースの問題ではありません、それは、書式設定の問題ですか?

+0

一重引用符を付けずに試しましたか? –

+0

クエリ文字列を取得してMySQLクライアントで試そうとしましたか? – MikeVelazco

+0

@RaunakGupta一重引用符はどういう意味ですか? – XiLab

答えて

1

ゼロを文字列として比較しているため、問題が発生する可能性があります。type cast vp_pms_group_users.readをintegerに設定してみてください。

これで9行目を置き換えます。 and CAST({$wpdb->prefix}vp_pms_group_users.read AS UNSIGNED) = 0

そのフィールドだけで、その後の数字が含まれている場合、私は人格は、あなたがすべての時間を型キャストする必要がいけないようtinyint(1)varcharからvp_pms_group_users.readのデータ型を変更することをお勧めします。 (開発段階にある場合のみ、それ以外の場合はこの提案を無視してください)。

関連する問題