Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果设置了变量,则在where语句中使用MySQL变量_Mysql - Fatal编程技术网

如果设置了变量,则在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的检查。但是这是否可以安全地完成将取决于您使用的编程环境。