Jor*_*n G 6 mysql sql procedure
我有一个问题,也许它很简单(对你来说是大师).
我将我的SQL Paging类从C#转换为MySQL存储过程.在我的C#自制对象中,查询是根据条件动态构建的.例:
if(keywords is not null)
{
whereClause += "WHERE description LIKE '%keywords%'"
}
if(price is not null)
{
whereClause += "AND price = '%price%'"
}
Run Code Online (Sandbox Code Playgroud)
....
string query = "SELECT col1, col2 FROM tblThreads " + whereClause
Run Code Online (Sandbox Code Playgroud)
现在,我的问题是:如何在MySQL中执行类似于此的动态where子句?或者更确切地说,如果他们没有为这些参数输入任何内容,我将如何告诉存储过程中的MySQL跳过这些参数?IE:
SELECT col1, col2 FROM tblThreads
Run Code Online (Sandbox Code Playgroud)
如果这些参数为空,那会是这样的吗?
SELECT col1, col2 FROM tblThreads WHERE (IS NULL @keywords OR description like '%@keywords%'
Run Code Online (Sandbox Code Playgroud)
??
多谢你们.
如果您允许他们查询整个数据库,最简单的方法就是1 = 1在您的语句中添加一个类似的东西
whereClause = "WHERE 1 = 1"
if(keywords is not null)
{
whereClause += "AND description LIKE '%keywords%'"
}
if(price is not null)
{
whereClause += "AND price = '%price%'"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9693 次 |
| 最近记录: |