Brown, Chris wrote:
> +-------+-------------+
>> Field | Type        |
> +-------+-------------+
>> id    | int(6)      |
>> svc   | varchar(20) |
>> sev   | tinyint(1)  |
>> dsc   | varchar(60) |
>> inits | varchar(20) |
>> dst   | date        |
>> tst   | time        |
>> den   | date        |
>> ten   | time        |
>> res   | tinyint(1)  |
> +-------+-------------+
> I went back and made the query up manually field by field, one field
> at a time, adding each LIKE statement in query after query, and found
> that after field DSC it failed, with the empty set result.
> Can anyone point me into the direction of a) Why it fails and b) A
> proper query that'll make this work??

If you allways want to LIKE a field, declare it NOT NULL DEFAULT '':
LIKE '%' on an empty string is TRUE, on a NULL (aka non-existant) it is
FALSE.

BTW, no need to optimize '%%' to '%'

create table test (
    id int ,
    text1 char(9) not null default '',
    text2 char(9) not null default '',
    text3 char(9) not null default '', );
insert test ( id, text1, text2, text3 )
    values ( 1 , 'a', 'b', 'c' ),( 2 , 'aa', 'bb', '' );
insert test ( id, text1, text2  )
    values ( 3 , '', '');
select * from test where
            text1 like '%'
    AND text2 like '%%'
    AND text3 like '%';

HansH
-- 
The evil powers of NULL ...



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

Reply via email to