If your condition that the status field only contains two values holds true,
then there should be no difference in the two queries you have below -- that
I can see, unless someone can prove me blind...

Are you *absolutely* sure none of the columns contain extra spaces, nulls,
etc...? You might try changing your where condition to WHERE status LIKE
\"%published%\" for the first and WHERE status LIKE \"%input%\" for the
second -- just to see if there are any other funky characters causing
problems. If the modified where conditions return the correct results,
there's something wrong with the data.

--jeff

----- Original Message -----
From: "John Hughes" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Saturday, March 02, 2002 12:32 AM
Subject: Query structure puzzle


> I have a table with approximately 600 rows. Two of the fields are
> "record_date" and "status"  Every record has an entry in the
> "record_date" in 0000-00-00 format.  The "status" is either "input"
> or "published" (I DID NOT create this colum as ENUM; those are simply
> the only values my PHP interface provides.)
>
> What I want to do is count the number of "published" letters grouped
> by date. We publish letters seven days a week, so there are no days
> when there would be no "published" letters.
>
> So, here is the puzzle.  These two queries serve up dramatically
> different results. The only difference in the query is the WHERE
> statement.
>
> $sql = "SELECT record_date, COUNT(status) AS number_of_letters
> FROM $table_name
> WHERE status = \"published\"
> GROUP BY record_date
> ";
>
>
> $sql = "SELECT record_date, COUNT(status) AS number_of_letters
> FROM $table_name
> WHERE status <> \"input\"
> GROUP BY record_date
> ";
>
> The query WHERE status = \"published\" finds 17 rows.
>
> The query WHERE status <> \"input\" finds 33 rows.
>
> The 33 row answer is the correct answer. I checked the individual
> records and can find no record with an answer other than "input" or
> "published" in the status.
>
> ASSUMING all records are either "input" or "published" and all
> records have valid record_date, WHY does <> status give a different
> result than = status?
>
> John Hughes
>
> RESULTS of WHERE status = "published"
> Date       Number
> 2002-01-30 10
> 2002-01-31 12
> 2002-02-01 8
> 2002-02-02 30
> 2002-02-03 8
> 2002-02-04 1
> 2002-02-05 8
> 2002-02-06 10
> 2002-02-07 9
> 2002-02-08 19
> 2002-02-09 30
> 2002-02-10 8
> 2002-02-11 10
> 2002-02-12 10
> 2002-02-16 2
> 2002-02-27 1
> 2002-03-03 8
>
>
> RESULTS of WHERE status <> "input"
> Date       Number
> 2002-01-30 10
> 2002-01-31 12
> 2002-02-01 8
> 2002-02-02 30
> 2002-02-03 8
> 2002-02-04 11
> 2002-02-05 8
> 2002-02-06 10
> 2002-02-07 9
> 2002-02-08 20
> 2002-02-09 30
> 2002-02-10 8
> 2002-02-11 10
> 2002-02-12 10
> 2002-02-13 11
> 2002-02-14 9
> 2002-02-15 9
> 2002-02-16 33
> 2002-02-17 11
> 2002-02-18 9
> 2002-02-19 9
> 2002-02-20 19
> 2002-02-21 10
> 2002-02-22 9
> 2002-02-23 32
> 2002-02-24 8
> 2002-02-25 19
> 2002-02-27 10
> 2002-02-28 9
> 2002-03-01 9
> 2002-03-02 29
> 2002-03-03 8
> 2002-03-04 10
>
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Sports - sign up for Fantasy Baseball
> http://sports.yahoo.com
>
> ---------------------------------------------------------------------
> Before posting, please check:
>    http://www.mysql.com/manual.php   (the manual)
>    http://lists.mysql.com/           (the list archive)
>
> To request this thread, e-mail <[EMAIL PROTECTED]>
> To unsubscribe, e-mail
<[EMAIL PROTECTED]>
> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
>


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to