2016-08-17 18 views
0

我正在查詢有關新消息的通知。當用戶發送消息並且接收方尚未讀取消息時,列read的值爲0。當然,當接收者點擊消息並讀取消息時,數據庫將使用value = 1更新列readWordPress的MySQL - 查詢不讀取值='0'

我的問題是,使用此查詢:

$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'沒有顯示,而如果我改變「1」的值的任何消息,我得到的所有消息讀取。

這不是一個數據庫的問題,因爲我通過我的phpmyadmin看到有與值0和消息值的消息1.

它是一個格式化問題?

+0

您是否嘗試過沒有單引號? –

+0

您是否嘗試獲取查詢字符串並在MySQL客戶端中嘗試它? – MikeVelazco

+0

@RaunakGupta你是什麼意思的單引號? – XiLab

回答

1

由於您將Zero作爲字符串進行比較,可能會造成問題,請嘗試將type cast vp_pms_group_users.read設置爲整數。

所以用這個替換9號線。 and CAST({$wpdb->prefix}vp_pms_group_users.read AS UNSIGNED) = 0

如果該字段只包含數字的話,我會建議性格,使你不必強制轉換的所有時間的vp_pms_group_users.read數據類型從varchar改變tinyint(1)。 (只有在開發階段,否則忽略這個建議)。