【发布时间】:2015-03-16 23:34:11
【问题描述】:
基于各种可选的用户输入,我需要修改查询中where子句的结构(不仅仅是动态值,而是动态结构)。
示例.. 如果他们选择 customerID,则不要使用 branchID 过滤器,但如果他们选择 empID,则同时使用 empID 和 branchID 过滤器。还有更多的标准被使用,这只是一个例子。
我可以使用 CASE 语句将所有逻辑构建到 where 子句中,但我猜这不会得到很好的优化?我知道我可以在存储过程中动态构建 sql 语句,并且我也可以使用准备好的语句……但这似乎很草率?还有其他我没有想到的方法吗?
【问题讨论】:
-
这个用户输入是如何进入图片的?这是在带有 php 后端的网页的上下文中,还是什么...?
WHERE子句是否仅包含WHERE MY_PROCEDURE(user_input) = true并且您将所有逻辑嵌入到过程中以返回真/假? -
通过网页,asp/vb后端。我不清楚您的建议...目标是执行带有许多条件 where 子句的选择查询。
标签: mysql stored-procedures prepared-statement