Reading whole emails is a skill I haven't fully mastered ;)

Simon pointed out that the records should never contain NULLs. I previously used a .CSV flat text file to store the data and am migrating over to sqlite2. It might not be very good database design, but the reason I do is so the users can add their data, I will check it and if it is good, then I'll assign them a userID number. So if that field is blank or NULL, it tells me that I have not manually validated that record yet.

Not sure if this is a good practice or not, but it has worked good with the text files and am hoping to be able to do the same thing with sqlite.

My preference would be for userID as INTEGER PRIMARY KEY AUTOINCREMENT and a separate column for validation (1=validated, 0 = not validated)

CREATE TABLE mailist (
 userID        INTEGER PRIMARY KEY AUTOINCREMENT,
 validated     INTEGER DEFAULT 0,
 name          TEXT,
 email         TEXT
);

Mircea

On 09/05/2012 11:38 AM, Shorty wrote:
I now realize that my data entry form was making the Steve entry a blank string, and that is why the <> '' worked.

Original database
recordID userID name email
1    1    John    j...@somewhere.com
2    2    Mike    m...@example.com
3    3    Bill    b...@example.com
4    ''    Steve    st...@example.com

SELECT max(userID) AS highest_userID FROM maillist WHERE userID <> ''
SELECT max(userID) AS highest_userID FROM maillist WHERE userID <> '' AND userID IS NOT NULL SELECT max(userID) AS highest_userID FROM maillist WHERE (userID <> '') AND (userID IS NOT NULL) SELECT max(userID) AS highest_userID FROM maillist WHERE userID NOT IN ('', NULL)
all of these return 3, which is what I am trying to get.



----- HERE IS THE THING I AM AFTER ----------------------------------------------- I am still interested in finding the max value of userID if that column does end up with a NULL in there. I added a new record with just the recordID so the rest of the columns should be NULL. I tried my original query plus the querys suggested by Simon and they all failed to produce the desired max value that I am looking for. I'm running php 5.2 that has sqlite 2.8.17


New Database:
recordID userID name email
1    1    John    j...@somewhere.com
2    2    Mike    m...@example.com
3    3    Bill    b...@example.com
4    ''    Steve    st...@example.com
5 null null null


SELECT max(userID) AS highest_userID FROM maillist WHERE userID <> ''
SELECT max(userID) AS highest_userID FROM maillist WHERE userID <> '' AND userID IS NOT NULL SELECT max(userID) AS highest_userID FROM maillist WHERE (userID <> '') AND (userID IS NOT NULL) SELECT max(userID) AS highest_userID FROM maillist WHERE userID NOT IN ('', NULL)

all of the above querys return NULL with the new database, I am trying to get it to return a 3.

Hmmmm..... any ideas what to try next? Sorry for the noob questions, already this thread has significantly helped my understanding of sqlite and I really apreciate the help!



-----  WHY I SETUP THE DATABASE LIKE IT IS ----------------
Simon pointed out that the records should never contain NULLs. I previously used a .CSV flat text file to store the data and am migrating over to sqlite2. It might not be very good database design, but the reason I do is so the users can add their data, I will check it and if it is good, then I'll assign them a userID number. So if that field is blank or NULL, it tells me that I have not manually validated that record yet.

Not sure if this is a good practice or not, but it has worked good with the text files and am hoping to be able to do the same thing with sqlite.

Thanks
Shorty


> Next Question - if I use the statment:
> SELECT max(userID) AS 'highest_userID' FROM maillist WHERE userID <> ''
>
> Would that produce the same results for both NULL numeric entries and > empty
> strings?

NULL compares smaller than any other value. So, unless all the values are NULL, max() won't pick it.

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to