2014-08-28 2 views
2

SQL 요청을 수행하는 중 문제가 발생했습니다. 사실, 나는 내 MYSQL 데이터베이스에서 통계를 얻으려고하고 있는데, 이렇게하려면 동일한 "유니버스"를 공유하는 항목에 대한 정보를 얻기 위해 몇 가지 유사한 쿼리를 실행하고 있습니다. 동일한 패턴을 공유하는 여러 범주를 우주라고 부릅니다 (아래 참조).SQL 함수를 올바르게 사용하는 방법

SELECT *, COUNT(1) FROM offer AS o, offerattributes AS oa 
WHERE o.offer_id=oa.offer_id AND o.cat LIKE '1%' AND oa.attribute_id='status_indexer'; 

이 첫 번째 쿼리는 유니버스 1 범주에 대한 정보를 얻는 데 사용됩니다. 이 우주 공유에서 모든 "고양이"두 개의 서로 다른 패턴

1) (11) ***** (* 숫자)

2) 10 *****

SELECT *, COUNT(1) FROM offer AS o, offerattributes AS oa 
WHERE o.offer_id=oa.offer_id AND o.cat LIKE '10%' AND oa.attribute_id='status_indexer'; 

이 두 번째 하나는 우주 10 범주에 대한 정보를 얻는 데 사용됩니다. 우주 1로, 우주에서 각각 "고양이"십주 두 개의 서로 다른 패턴

1) (100) *****

2) (101) *****

내가 가진 문제 이 두 쿼리는 모두 유니버스 1과 10에서 범주를 찾습니다. MySQL treating about the LIKE function에서 의사를 읽었으며 인터넷을 통해 찾았습니다.이 문제를 해결하는 방법을 찾지 못했습니다.

+0

것은 **** 포함 숫자와 네 우주에 대한 문자열의 길이 10은 우주 1보다 한 문자 길다. – Oscar

답변

0

그것은 우주 1 당신을 위해 일 것이다 다음과 같습니다 :

SELECT *, COUNT(1) 
FROM offer o 
INNER JOIN offerattributes oa ON o.offer_id = oa.offer_id 
WHERE o.cat LIKE '1%' AND oa.attribute_id = 'status_indexer' 
AND LEN(o.cat) = 7 

와 우주 (10) :

SELECT *, COUNT(1) 
FROM offer o 
INNER JOIN offerattributes oa ON o.offer_id = oa.offer_id 
WHERE o.cat LIKE '10%' AND oa.attribute_id = 'status_indexer' 
AND LEN(o.cat) = 8 
관련 문제