如果设置了变量,则在where语句中使用MySQL变量
如果我选择设置一些用户变量,我想设置一个查询来过滤它们如果设置了变量,则在where语句中使用MySQL变量,mysql,Mysql,如果我选择设置一些用户变量,我想设置一个查询来过滤它们 SET @item_number = 12345; SELECT * FROM table IF(@item_number IS NOT NULL, item_number = @item_number, NULL) 但是基于我的错误,我没有正确地执行此操作。这是否在进程中?或者您正在尝试构建一些动态SQL 如果在进程中,您可以构建动态SQL,这可能是最简单的 一种可能效率低下(由于试图计算索引是否有助于查询)但易于理解的方
SET @item_number = 12345;
SELECT * FROM table
IF(@item_number IS NOT NULL, item_number = @item_number, NULL)
但是基于我的错误,我没有正确地执行此操作。这是否在进程中?或者您正在尝试构建一些动态SQL 如果在进程中,您可以构建动态SQL,这可能是最简单的 一种可能效率低下(由于试图计算索引是否有助于查询)但易于理解的方法可能是:-
SET @item_number = 12345;
SELECT * FROM table WHERE (@item_number IS NULL OR item_number = @item_number);
这只是一些动态SQL,所以我可以对一些值进行抽查,或者不进行抽查来运行所有值。我只需要为SQL构建文本,如果@item\u number为空,则忽略对item\u number的检查。但是这是否可以安全地完成将取决于您使用的编程环境。