Opposite of MySQL FIND_IN_SET

2019-02-11 23:49发布

问题:

How can I do the equivalent of:

!FIND_IN_SET('needle', haystack)

回答1:

FIND_IN_SET returns the index of the match if it is found, and returns 0 if it is not found. Since 0 is FALSE you can just use NOT FIND_IN_SET('needle', 'haystack')



回答2:

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set

FIND_IN_SET('needle', haystack) = 0 should do the trick.



回答3:

SELECT id FROM table where !FIND_IN_SET(needle,haystack).......

Its working for me...



回答4:

It seems to do not work if the field is NULL and therefore doesn't contain the value.

So I wrote the following workaround:

WHERE id NOT IN (SELECT id FROM table WHERE FIND_IN_SET(needle,haystack))

Hope it'll help!