簡體   English   中英

重寫復雜 SQL 語句的最佳方法?

[英]Best method to rewrite complex SQL statement?

我有以下 SQL 聲明:

mysql_query("SELECT * FROM `friends` WHERE friend1='$username' OR friend2='$username' AND confirmed='1'");

我想要完成的是從表friends中刪除表 select 數據,其中兩個字段之一等於您的用戶名,並且confirmed字段必須等於 1。但這似乎不起作用。 重寫它的最佳方法是什么?

用括號中的朋友條款試試這個:

 SELECT * FROM friends 
 WHERE (friend1='$username' OR friend2='$username')
 AND confirmed='1'

這將確保滿足您的朋友條件之一。 無論哪個匹配,它也會檢查確認位。 如果兩個友元條件都不匹配,則該行不是結果集的一部分。

也許您的 where 子句沒有以您期望的方式評估條件? 嘗試:

mysql_query("SELECT * FROM `friends` WHERE (friend1='$username' OR friend2='$username') AND confirmed='1'");

以下鏈接顯示了 mysql 中的運算符優先級,正如您所見,AND 在 OR 之前被評估,因此您的問題。

http://dev.mysql.com/doc/refman/4.1/en/operator-precedence.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM