From: Date: March 5 2003 5:17pm Subject: HAVING vs. WHERE List-Archive: http://lists.mysql.com/mysql/134036 Message-Id: <3E662321.1040502@buddydog.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit In the MySQL reference, it warns against using HAVING for items that "should" be in a WHERE clause. I'm not sure what items "should" be in a WHERE clause. My exact problem is I want to select some records that have a dotted IP address as one of the fields. And I want to filter out the multicast addresses, which are the addresses that begin with the numbers in the range of 224. thru 239. This does it: SELECT * FROM Client WHERE left(inetAdr,instr(inetAdr,"."))< 224 OR left(inetAdr,instr(inetAdr,".")) > 239 and this works as well: SELECT *,left(inetAdr,instr(inetAdr,".")) as ia FROM Client HAVING ia < 224 OR ia > 239 and it is a little cleaner, although as I'm going to be doing this in a PHP script, cleanliness isn't all that important. So I guess I have 2 questions: 1] Which should I use? 2] Is this the easiest way to check for the multicast address? -- Jonathan Arnold (mailto:jdarnold@stripped) Amazing Developments http://www.buddydog.org It ain't what you don't know that gets you into trouble. It's what you know for sure that just ain't so. Mark Twain