2011-11-05 86 views
0

在插入運動檢索算法multiselected逗號分隔存儲的ID,我存儲multiselected使用逗號系列表分開存儲(複選框列表)事件ID。像1,4,5,6如何使用.NET

現在,當我嘗試搜索基於這些事件ID的廣告系列信息時,它無法正常工作。意味着當我嘗試通過選擇event_id 1來搜索廣告系列時,它也會搜索12,3,2或6,21,22等字段。

我的搜索字符串如下所示。

SELECT * 
FROM `crm_campaign` 
WHERE `event_ids` LIKE '%1,%' 
OR `event_ids` LIKE '%,1,%' 
OR `event_ids` LIKE '%,1%' 

請給我建議。

我應該更改多選字段的數據結構嗎?

現在我插入'1','4','5'這樣的event_id 對不對? 如果是,那麼如何在asp.net中使用搜索字符串,因爲這些轉義字符給我mysqlcommand參數的問題。

+0

有加MySQL來標記 – Will

回答

0

嘗試在WHERE子句中串聯逗號的開始和結束event_ids

SELECT * 
FROM `crm_campaign` 
WHERE concat(',', `event_ids`, ',') LIKE '%,1,%' 

由於表設計的本質,這將是緩慢的,如果你的表中包含許多行。 如果這成爲一個問題,請將事件id移到單獨的相關表中。

+0

它給Syntaxt錯誤我,我使用的是MySQL –

+0

,我已經改變到MySql語法 –

+0

現在請再試一次 – Will

0

我想你可以使用列表或數組。如果你有逗號分隔的字符串,使用split函數來獲取數組數組和查詢值。

+0

謝謝..但給我的例子please.because即時通訊新的編程 –