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";