我正在尝试构建动态查询。
这很好用:
$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);
任何提示?谢谢!
答案 0 :(得分:3)
因此,您需要进行查询:
SELECT *
FROM orders
WHERE order_id in ($qstring);
如果@qstring
参数中没有传递任何值,则工作正常。在这种情况下,请尝试以下方法:
SELECT * FROM orders
WHERE ($qstring <> '*' AND order_id in ($qstring));
答案 1 :(得分:2)
如果你想匹配所有内容,只需使用不带where子句的select。
SELECT * FROM orders
如果你被迫(由于一些奇怪的原因使用你描述的构造)那么......
$qstring="SELECT order_id FROM orders";
答案 2 :(得分:1)
如果您需要所有内容,则不应该有WHERE IN子句。
检查您的$qstring
变量,仅在需要时附加WHERE order_id in ($qstring);