Difference Between WHERE FIND_IN_SET(...)>0 and WHERE FIND_IN_SET(...)
<p>According to <a href="https://dev.mysql.com/doc/refman/5.7/en/set.html" rel="nofollow noreferrer">MySQL Reference Manual - The SET Type</a></p>
<blockquote>
<p>Normally, you search for SET values using the FIND_IN_SET() function or the LIKE operator:</p>
<p>mysql&gt; SELECT * FROM tbl_name WHERE FIND_IN_SET('value',set_col)&gt;0;</p>
</blockquote>
<p>According to <a href="http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_find-in-set" rel="nofollow noreferrer">MySQL Reference Manual</a></p>
<blockquote>
<p>FIND_IN_SET(str,strlist)</p>
<p>Returns a value in the range of 1 to N if the string str is in the string list strlist consisting of N substrings. A string list is a string composed of substrings separated by “,” characters. If the first argument is a constant string and the second is a column of type SET, the FIND_IN_SET() function is optimized to use bit arithmetic. Returns 0 if str is not in strlist or if strlist is the empty string. Returns NULL if either argument is NULL.</p>
</blockquote>
<p>Therefore, I think that</p>
<pre><code>SELECT * FROM tbl_name WHERE FIND_IN_SET('value',set_col)
</code></pre>
<p>works properly when you want to find value from a set.</p>
<p>So why does example from MySQL Reference Manual explicitly comparing with <code>&gt;0</code> ?</p>
<p>Is there any difference ?</p>