Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.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
Php SQL:将IN运算符与任何内容匹配_Php_Mysql_Sql - Fatal编程技术网

Php SQL:将IN运算符与任何内容匹配

Php SQL:将IN运算符与任何内容匹配,php,mysql,sql,Php,Mysql,Sql,我正在尝试构建一个动态查询 这很好: $qstring="10000, 10001, 10003, 10005"; SELECT * FROM orders WHERE order_id in ($qstring); 当我没有要匹配和选择的数据时,这也可以正常工作 $qstring=""; SELECT * FROM orders WHERE order_id in ($qstring); 是否存在与任何数据匹配的以下内容?我检查了SQL的模式匹配,但没有找到任何匹配的东西 $qstri

我正在尝试构建一个动态查询

这很好:

$qstring="10000, 10001, 10003, 10005";

SELECT *
FROM orders
WHERE order_id in ($qstring);
当我没有要匹配和选择的数据时,这也可以正常工作

$qstring="";

SELECT *
FROM orders
WHERE order_id in ($qstring);
是否存在与任何数据匹配的以下内容?我检查了SQL的模式匹配,但没有找到任何匹配的东西

$qstring="*";

SELECT *
FROM orders
WHERE order_id in ($qstring);

有什么提示吗?谢谢

如果你需要所有东西,你不应该有WHERE In子句


检查您的
$qstring
变量,只在($qstring)中添加
WHERE order\u id必要时

因此,您需要进行查询:

SELECT *
FROM orders
WHERE order_id in ($qstring);
如果
@qstring
参数中没有传递值,则工作正常。在这种情况下,请尝试以下方法:

SELECT * FROM orders 
WHERE ($qstring <> '*' AND order_id in ($qstring));
从订单中选择*
其中($qstring'*'和($qstring)中的订单id);

如果要匹配所有内容,只需使用select而不使用where子句

SELECT * FROM orders
如果你被迫(出于某种奇怪的原因)使用你描述的结构,那么


我知道。。。但这正是构建动态查询的问题所在。我可以控制$qstring,但不能控制查询语句。'$qstring'*',否则SQL将无法运行,这是PHP变量刚刚插入TSQL字符串,对吗?
$qstring="SELECT order_id FROM orders";