0

我有一个学校的搜索门户。我有一个高级搜索表单,用户可以在其中选择课程、学校所在城市等。

单击搜索按钮后,我有以下查询:

select * from tbl_xxx 
where state = 'xxx' and city = 'xxx' and area = 'xxx' 
      and ( course LIKE 'x' or course LIKE 'Std 10') 
      and gender ='xxx'

其实我的问题是选课。课程字段表中的值将类似于以下任何选项:

std 1, std 2 ,std3, std 4
std 10, std 11&12 commerce
std 10, std 11&12 science
std 1, std 2 ,std3, std 4, std 5, std 6, std 7, std 8, std 9, std 10, std 11&12 commerce
std 1, std 2 ,std3, std 4, std 5, std 6, std 7, std 8, std 9, std 10, std 11&12 science

如果我从课程字段中删除所有数据并仅添加“std 10”,则只显示结果。
如果我使用类似运算符进行搜索,例如上面给出的查询,我应该得到最后四个字段,因为它包含“std 10”,但我没有得到任何结果。

我知道仅在搜索查询中存在一些问题。但我不知道任何运营商,而不是LIKE用于这样的问题。

我的应用程序位于 asp.net (C#) 中。

4

1 回答 1

0

您应该考虑使用存储过程进行查询,然后使用可能ADO.NET to query the DB...

此外,like语句需要通配符,例如

select....where course like 'Std 1%'<- 这将获得前 5 个字符作为标准 1 的所有课程。

于 2012-06-14T09:48:56.863 回答