我想知道是否有一种方法可以通过传递给它的参数来格式化 sql 以获得结果。
dim fName as string = Tom
exec SP_GetPersonInfo + fName
@FName VarChar(255)
SELECT Gender, Height, Weight, Age
FROM Person
WHERE FirstName LIKE ('fName %') <-- how would I format this?
我想知道是否有一种方法可以通过传递给它的参数来格式化 sql 以获得结果。
dim fName as string = Tom
exec SP_GetPersonInfo + fName
@FName VarChar(255)
SELECT Gender, Height, Weight, Age
FROM Person
WHERE FirstName LIKE ('fName %') <-- how would I format this?
可以与 LIKE 运算符一起使用的通配符在运行时动态评估,而不是在语句编译时静态评估。这意味着 '%' 必须是您提供给运算符的文字或字符串的一部分,而不是语句本身的一部分。
例如,以下 Java 语句将字符串输入到 ArrayList 中。ArrayList 包含作为 JDBC PreparedStatement 参数的字符串。参数形式为
以便可以通过指定客户姓名的前几个字符来查找客户。注意:这种形式允许许多查询优化器仍然使用索引。
m_qlist.add(s[i] + "%");
基于上述内容,您可以以这种方式编写查询以使用参数@FName
:
SELECT Gender, Height, Weight, Age
FROM Person
WHERE FirstName LIKE @FName + '%';
使结果加粗完全是另一回事。而且,正如 Tim 所说,这应该由用户界面处理。您不应该尝试将格式化代码破解到 SQL 语句中。
编辑:在你澄清之后,我相信上面的陈述是你的陈述的参数化等价物:
FirstName LIKE ('" + fname + " %') "