我需要使用字符串查询来搜索与MySQL服务器交互的C#程序。我想要找到的是一个“喜欢”我的其他变量之一的名称(nameVar)
我在C#程序中有以下查询
string q = "SELECT *
FROM TABLE
WHERE name is like %?nameVar%";
只要在我的程序中执行查询,我就会收到语法错误,告诉我语法附近 '喜欢'是不正确的。一旦我删除“%”符号,它就可以正常工作。
我很困惑,在构建查询字符串时是否必须删除%符号?
答案 0 :(得分:1)
您的参数正在替换?nameVar
部分,包括引号。如果参数是“TEST”,则查询将显示为
string q = "SELECT *
FROM TABLE
WHERE name is like %'TEST'%";
如您所见,%符号不合适。要么将它们从C#程序包含到namevar
中,要么将查询更改为
string q = "SELECT *
FROM TABLE
WHERE name is like '%' + ?nameVar + '%'";
答案 1 :(得分:0)
您需要引用查询:
string q = "SELECT * from table where name is like '%?nameVar%'";
答案 2 :(得分:0)
SQL中的字符串需要用单引号括起来:
string q = "SELECT *
FROM TABLE
WHERE name LIKE '%?nameVar%' ";
此外,使用IS
时没有LIKE
运算符。
答案 3 :(得分:0)
我认为你必须遗漏'是'。
答案 4 :(得分:0)
我认为正确的语法是:
SELECT * FROM table WHERE fields LIKE '%phrase%'