2013-11-02 3 views
0

ABH18 또는 ABH17 또는 ABH19와 같은 지정된 날짜와 코드를 사용하여 데이터베이스에서 결과를 가져 오기위한 MySQL 쿼리를 작성해야합니다. 나는 아래와 같은 쿼리를 작성한다.MySQL 쿼리가 잘못된 결과를 나타냅니다.

select * from tbl_transaction where 
    trans_name like 'ABH19%' or trans_name like 'ABH18%' 
    or trans_name like 'ABH17%' or trans_name like 'ABH15%' 
    and date_of_vazhipad='2013-11-20' and trans_status='Completed successfully.' 

위의 조건을 모두 만족하는 DB에는 결과가 없습니다. 그러나 다른 날짜의 결과가 있습니다. 하지만 date_of_vazhipad = '2013-11-20'을 사용하여 쿼리가 제대로 작동하도록하고 싶습니다.

답변

3

ANDOR보다 우선합니다. 올바른 장소에 괄호를 넣어 :

SELECT * FROM tbl_transaction WHERE 
(trans_name like 'ABH19%' OR 
trans_name like 'ABH18%' OR 
trans_name like 'ABH17%' OR 
trans_name like 'ABH15%') 
AND date_of_vazhipad='2013-11-20' 
AND trans_status='Completed successfully.' 
1

당신은

정규 표현식은 '^ABH19|^ABH18|^ABH17|^ABH15'

SELECT * FROM tbl_transaction 
    WHERE trans_name REGEXP '^ABH19|^ABH18|^ABH17|^ABH15' 
    AND date_of_vazhipad='2013-11-20' 
    AND trans_status='Completed successfully.'; 

찾을 참조 here

인 쿼리를 단축 할 REGEXP을 사용할 수 있습니다
관련 문제