2014-08-28 51 views
2

我遇到了執行SQL請求的問題。事實上,我試圖從我的MYSQL數據庫獲取統計信息,爲了做到這一點,我正在執行幾個類似的查詢來獲取共享相同「Universe」的條目的信息。我把宇宙多個類別稱爲共享相同的模式(見下文)。如何正確使用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'; 

該第一個查詢用於獲取有關Universe 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中,每個 「貓」 從宇宙10股兩種不同的模式:

1)100 *****

2)101 *****

我的問題是這兩個查詢都查找了Universe 1和10中的類別。我從MySQL treating about the LIKE function中閱讀了文檔,查看了互聯網,但我沒有找到如何解決這個問題。

+0

****只包含數字和是字符串爲宇宙的長度10是比宇宙1長一個字符。 – Oscar 2014-08-28 14:27:21

回答

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