Hi, I'll try

I need one record for each id in the tabel, i.e. NO duplicate id's with TYPE set to 4 or NULL
Now, the TYPE of  id 2 is 4 so I peserve it;
As id 2 has more than one entry I have to delete it/them
Id's with TYPE = NULL  (id 1,4,5)is kept
Id 5 (and 6) has two records, none of which has the value of 4, so one is preserved and TYPE set to NULL while the other should be deleted

I update the tabel between queries from another table

Regards Soren



TABLE:
RECNO    | ID       |        TYPE
---------------------------------
1                | 1        |    NULL
2                | 2        |    4                <-KEEP AS IS
3                | 2        |    6                <- DROP
4                | 3        |    NULL        <- KEEP AS IS
5                | 4        |    NULL        <-KEEP AS IS
6                | 5        |    1                <-NULL
7                | 5        |    3                <-DROP
8                | 6        |    7                <-NULL
9                | 6        |    3                <-DROP

What I neede is a SQL statement that for a given value of TYPE, lets say 4,
selects all the unique id's with TYPE = 4 when appropriate otherwise NULL

like:

SOLUTION:
RECNO    | ID       |        TYPE
---------------------------------
1                | 1        |    NULL
2                | 2        |    4
3                | 3        |    NULL
4                | 4        |    NULL
5                | 5        |    NULL
6                | 6        |    NULL


I know this isn't  MySQL specifik but hope for someones help anyway :-)
Sorry for any inconvenience this may course users of the list

I've reread your question and example a couple of times but I'm still not clear on what you want but maybe this will help until you can clarify the question.

You use WHERE to limit your result set to only specific rows of the original table. Therefore, if you want only rows where the type is 4, you say:

Select <column-list>
from <table-name>
where type = 4;

For example, if your table name was 'mytab' and you wanted the ID column in the result, you'd write:

Select ID
from mytab
where type = 4;

Now, if the result showed many identical values in the columns of the result set and you just want to know the unique values of ID that had a type of 4, you add DISTINCT to the query:

select distinct ID
from mytab
where type = 4;

But that's where I get confused by your description of your problem. There is only one row in your sample table that has a type of 4 so DISTINCT isn't going to do anything for you; you'll get the same result with or without DISTINCT, at least with the data you've shown.

I also don't understand where the nulls come in. Do you actually want to update the data in your table permanently so that a null isn't null any longer (or a non-null value is null)? Or do you want to _display_ a null where something isn't null? I don't understand what your "DROP" and "LEAVE AS IS" remarks mean.

Can you explain more fully what you are trying to do?

--
Rhino


--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.375 / Virus Database: 268.1.2/274 - Release Date: 03/03/2006


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]



--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to