我有一個表中有一個id與多個數值。如表中id = 200的值是value_id =(337,22878,4,10,99),id = 201的值是value_id =(337,22878,99)。如何使用FIND_IN_SET或LOCATE或必須得到一個計數
我使用group_concat函數來獲取所有值對一個id。
現在我想有ID的總數不包含價值爲4
對於我試圖像
- COUNT許多事情(如果(FIND_IN_SET(4,GROUP_CONCAT(value_id ))> 0,1,NULL))
- COUNT(如果(LOCATE(4,GROUP_CONCAT(value_id))> 0,0,1))
- GROUP_CONCAT(value_id)AS all_data,COUNT(如果(LOCATE( 4,all_data )> 0,0,1))
- COUNT(如果(GROUP_CONCAT(alloc.table_id)= 4,0,1))
- 我使用具有也(我不想使用它,因爲在存儲過程 性能問題)
結果試圖:我總是得到錯誤代碼:1111無效使用組功能的
select manager_profile_id,group_concat(value_id) as all_data
from managers
where manager_profile_id =487 and team_id=2
GROUP BY manager_profile_id HAVING all_data !=4 ;
真的逗號分隔值?數據庫不是爲逗號分隔的值而設計的...我建議你將表格歸一化,你可以指望很多eazier。 –
您需要計算ID的總數。哪個ID? manager_profile_id或team_id?我假設不包含的值在value_id中。 – Sal