2015-11-06 93 views
1

我試圖從表中更新數據。我在Google和Stack中搜索過,但我無法做到這一點。UPDATE TABLE數據WHERE在MySQL中選擇

這是一個Android應用程序。當我點擊按鈕「取消訂閱」應該更新表「assinaturas」現場「isSubscribed」以0

此按鈕,發送到PHP該信息(電子郵件,姓名等):

if (isset($_POST['email']) && isset($_POST['nome'])) 

這裏爲表USUARIOS: enter image description here

這裏是表播客: enter image description here

這裏是表assinaturas:

Table assinaturas

,我有是 'usuarios.email' 和 'podcasts.nome' 的信息。

這裏是我的tryings之一:

      UPDATE TABLE assinaturas 
          SET isSubscribed = 0 
          WHERE id_usuario IN (
          SELECT  usr.id 
          FROM  usuarios AS usr 
          WHERE  usr.email = '$email' 
          ) 
          AND id_podcast IN (
          SELECT  pcst.id 
          FROM  podcasts AS pcst 
          WHERE  pcst.nome = '$nome' 
          ) 

與此查詢我有語法錯誤:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TABLE assinaturas SET isSubscribed = 0 WHERE id_usuario IN (' at line 2

所以,我收到usuarios.emailpodcasts.nome我需要更新assinaturas.is訂閱0(零)

我希望你能幫助我。謝謝。

+0

這看起來像在滿足條件下,它應該更新表。也許你需要更好地描述你想要做什麼,並提供更完整的樣本數據。 –

+0

您錯過了一個右括號。你得到什麼錯誤? –

+0

請添加'usuarios'和'podcasts'的示例內容,並解釋'assinaturas'中哪些行應該更新。如果您發佈的是文字而不是圖片,那麼效果會更好,因此我們可以將其複製並粘貼到sqlfiddle中。要麼,要麼自己做一個sqlfiddle。 – Barmar

回答

2

UPDATE TABLE不正確,刪除單詞表:

UPDATE assinaturas 
SET isSubscribed = 0 
WHERE id_usuario IN (
    SELECT usr.id 
    FROM usuarios AS usr 
    WHERE usr.email = '$email' 
) AND id_podcast IN (
    SELECT pcst.id 
    FROM podcasts AS pcst 
    WHERE pcst.nome = '$nome' 
) 
+0

它的工作!真棒!非常感謝。愚蠢的錯誤,對不起。 – Alan