2014-12-18 1 views
-1

순서가 잘못된 MYSQLi :SELECT 문 잘못되었거나 다음 표 "기술 정보"를 사용

sample of table being used

그리고, 다음 SQLI 쿼리 사용 :

SELECT * 
FROM 
    `technotes` 
WHERE 
    `techgroup` LIKE '%dispatch%' OR 
    `techgroup` LIKE '%30243542%' AND 
    `expires` >= '2014-12-18' AND 
    `viewed` NOT LIKE '%30243542%' 

예상 무슨이었다 alertid : 23324325 & 23546576 (첫 번째와 마지막 하나)가 반환됩니다. 하지만 대신 기록 1,3,4,5가 반환됩니다. SQLi select 문에서 작동 순서 나 다른 구성 요소의 일부가 누락되었습니다. 형식이 잘못되었지만 확실하지 않습니다. 누군가가 내가 버렸거나 바꿀 필요가있는 것을 조언하여 올바르게 작동 할 수 있습니까?

+0

인가 날짜 시간 필드를 '만료'? –

+0

첫 번째 단계로서 우선 순위 주변에 괄호를 추가하여 우선 순위가 올바른지 확인합니다. MySQL이 OR 또는 AND보다 높은 우선 순위를 부여하는지 확신 할 수 없습니다. – Michael

+0

"만료"필드 유형이 "날짜"로 설정되었습니다. – DMSJax

답변

0

이 시도 :

SELECT * FROM 
    `technotes` 
WHERE 
(`techgroup` LIKE '%dispatch%' OR `techgroup` LIKE '%30243542%') 
AND `expires` >= '2014-12-18' 
AND (`viewed` NOT LIKE '%30243542%' OR ISNULL(`viewed`))