List:General Discussion« Previous MessageNext Message »
From:johan de taeye Date:March 21 2011 11:26am
Subject:RE: Problem filtering with a "like" expression
View as plain text  
After updating the SQL_MODE, it works as I expect.   

Thanks for your prompt replies!

Johan  

-----Original Message-----
From: petya [mailto:petya@stripped] 
Sent: Monday, March 21, 2011 12:10 PM
To: Johan De Taeye
Cc: mysql@stripped
Subject: Re: Problem filtering with a "like" expression

Hi,

|| isn't the concatenation operator by default. If you want it to be set
sql_mode=PIPE_AS_CONCAT. Otherwise, use the CONCAT() function instead of 
|| operator.

Peter Boros

On 03/21/2011 11:51 AM, Johan De Taeye wrote:
> I ran into this case where a "like" expression is not evaluated 
> correctly if the pattern is an expression.
> The example below shows a case where *AAA* is not considered *like 'A' 
> ||
> '%'*
> Is this a known limitation? Or a bug?
>
>
> create table lookup (
>    name varchar(60)
> );
>
> insert into lookup (name) values ('AAA');
>
> select * from lookup where name like 'A%';
> =>  1 record returned.   OK
>
> select * from lookup where name like 'A' || '%';
> =>  returns nothing.   INCORRECT!
> select * from lookup where name like ('A' || '%');
> =>  same as previous and returns nothing.   INCORRECT!
>
>
> I reproduced this problem on win32 using versions 5.1 and 5.5.10
>
>
> Best regards,
>
> Johan
>

Thread
Problem filtering with a "like" expressionJohan De Taeye21 Mar
  • Re: Problem filtering with a "like" expressionpetya21 Mar
    • RE: Problem filtering with a "like" expressionjohan de taeye21 Mar
  • Re: Problem filtering with a "like" expressionSimcha Younger21 Mar