2013-07-10 50 views
-1

我的表稱爲 「ASD」MySQL的 - 計數,其中包含在一個字符串ID

我有這樣的模式:

id  | date  | content | 
AUTO_INC DATETIME LONGTEXT 

現在假設content = 45,67,89,3,45,5

我如何search COUNT()此表WHERE content CONTAINS 89例如 ?

我試過SELECT COUNT() FROM asd WHERE content IN(89);但我沒有結果。

回答

6

你可以只使用FIND_IN_SET

SELECT COUNT(*) FROM `table` WHERE FIND_IN_SET(89,`content`); 

PS你需要閱讀關於多對多的關係。

+0

這正是我所需要的,我想,只需要測試它+1 – sbaaaang

0
SELECT COUNT(*) 
FROM ASD 
WHERE content LIKE '%,89,%' OR 
     content LIKE '%,89' OR 
     content LIKE '89,%' 

%,89,% - 在內容

%,89中間匹配89 - 在內容

89,%結束 - 在內容

+0

不,這會計算**,890 **也是,我需要計算它的確切位置89 – sbaaaang

+0

不,不會,我有','。 890與'89'或',89 '或'<行首89>,' – mishik

+0

'中的任何一個都不匹配。mmmm – sbaaaang

0
SELECT COUNT(*) as cnt FROM `asd` WHERE `content` LIKE '%,89,%' OR `content` LIKE '89,%' OR `content` LIKE '%,89'; 

檢查的開始SQL小提琴:http://sqlfiddle.com/#!2/151c7/2/0

1

試試這個

SELECT COUNT(*) 
FROM ASD 
WHERE ',' + content + ',' like '%,89,%' 
相關問題