[英]Two FIND_IN_SET in a single query is not working
下面是表格結構(邀請表): -
id user_id doc_name discussion_topic invited_friends accepted_invitation
1 1 IEP Form-1.docx first topic 2,3,4 NULL
現在:
當我查詢時: -
SELECT * from invite WHERE (FIND_IN_SET(2,invited_friends) > 0)
我完美地記錄了這個記錄(如上所示)。
但是當我這樣做時:
SELECT * from invite WHERE (FIND_IN_SET(2,invited_friends) > 0) AND (FIND_IN_SET(2,accepted_invitation) =0)
我沒有得到上述記錄,也沒有任何錯誤。
當我這樣做時:
SELECT * from invite WHERE user_id <>1 AND (FIND_IN_SET(2,invited_friends) > 0) AND (FIND_IN_SET(2,accepted_invitation) =0)
我再次沒有得到上述記錄,也沒有任何錯誤。
其實我有場景檢查一個給定的編號(例如2)不等於user_id
,並且必須invite_friends
(不能為空),而不是在accepted_invitation
( accepted_invitation
將是null
或者,
分隔ID值)。
我在最后兩次查詢中犯了什么錯誤?
注意:我在phpmyadmin
直接使用這些查詢
你應該用它
將'= 0'替換為'is null'
SELECT * from invite WHERE (FIND_IN_SET(2,invited_friends) > 0) AND (FIND_IN_SET(2,accepted_invitation) is null )
檢查您的場景使用情況
SELECT * from invite WHERE user_id <>2// check user ID not equal to 2
AND (FIND_IN_SET(2, invited_friends) > 0)// 2 present in invited_friends
AND ((FIND_IN_SET(2, accepted_invitation) = 0)|| (FIND_IN_SET(2, accepted_invitation) IS NULL))// check 2 is null and not present in accepted_invitation
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.