2011-11-05 42 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即时通讯新的编程 –