MySQL doesn't work that way...
(hence my confusion - sorry ita!)
I have really old Access skills ...
Buffy ,'Potential'
Got a question about technology? Ask it here. Discussion of hardware, software, TiVos, multi-region DVDs, Windows, Macs, LINUX, hand-helds, iPods, anything tech related. Better than any helpdesk!
MySQL doesn't work that way...
(hence my confusion - sorry ita!)
I have really old Access skills ...
SELECT colA, colB, * FROM TableA WHERE ISNULL(colA=colB)
have you tried using design view to build a simple query? Your sql should work, but using design view might help.
I started it in Design view, and then switched to SQL view to enter my specifics. Then, when it was weird, switched back to Design view where everything looked theoretically normal. I'm not sure of any other way to enter it into Design view than like:
Field:TableA.*colAcolB Table:TableATableATableA Sort: Show:YYY Criteria:<>[colB]
(and it'll be a miracle if that table comes out right...)
The Query Designer will get it wrong.
That design should work, but you might also try creating a fourth field that's an expression, like expr1: [colA] = [colB], and then have the criteria in the field be equal to false.
If you have nulls in either column, this is the query in Oracle: select colA, colB, r.* from table r where nvl(colA,'NOTMATCHA') != nvl(colB,'NOTMATCHB')
I think mysql's version of the nvl function is ifnull, but I don't have mysql here to test: select colA, colB, * from table where ifnull(colA,'NOTMATCHA') != ifnull(colB,'NOTMATCHB')
expr1: [colA] = [colB], and then have the criteria in the field be equal to false.
It will evaluate to NULL instead of false because Access is whacked out.
Gud, that's the answer. I dislike that it's the answer, since it means I need a more complex WHERE clause to catch nulls and normal inequality. Does "=" have three possible values in most RDBMSs?
::searches::
Looks like MySQL behaves the same way, and includes a "NULL safe equal" to accomodate it.
I had no idea.
Gud, that's the answer. I dislike that it's the answer, since it means I need a more complex WHERE clause to catch nulls and normal inequality.
Sometimes the truth hurts.
Yeah, I don't think there's any way around a more complex where. This is cludgy, but...
SELECT TableA.colA, TableA.colB
FROM TableA
WHERE [colA]<>[colB]
OR (IsNull([colA])=True AND IsNull([colB])=False)
OR (IsNull([colB])=True AND IsNull([colA])=False);
You don't need the last bit since your dataset doesn't contain nulls in B, but you would if it might.