我想构建一个sql查询,因为我的表单中的一个不应该包含常用名称(在单独的表中维护单词列表)并且我将该字段的值作为参数传递并且想要检查它是否应该不包含该表中的任何通用名称。
如何使用sql查询实现这一目标?
注意:如果常用名称为'abc',我将参数传递为'!abc123',因为它包含该字查询应该返回false。
提前致谢。
答案 0 :(得分:3)
尝试类似(未经测试的查询):
SELECT CommonName
FROM CommonNamesTable
WHERE CommonName like '%NameToTest%'
OR CONTAINS(NameToTest, CommonName);
基本上你需要字符串匹配选项:
答案 1 :(得分:2)
这是你要找的吗?
SELECT (COUNT(*) == 0) FROM tablewithcommonwords
WHERE wordfromform LIKE CONCAT('%', wordcolumnnfromcommonwordstable, '%');
答案 2 :(得分:0)
试试这个:
IF NOT EXISTS(SELECT word FROM CommonWord WHERE @yourparam
LIKE '%' + word + '%')
BEGIN
RETURN 1
END
ELSE
BEGIN
Return 0
END
如果@yourParam
包含在任何单词或名称中,您不想使用的内容,则此方法有效。如果表中的任何行未包含它,则仅返回1。
我只是通过这种方式表达这句话(你可以使用简单的Exists而不是NOT Exists),因为你可能想要扩展真实部分的功能。
答案 3 :(得分:0)
if exists (select * from reservedwords where @parameter like '%'+word + '%')
select 0
else
select 1
答案 4 :(得分:0)
我想建议您必须在TextBox中使用keypress事件,然后在每个字符输入TextBox后处理您的代码。