SQL:匹配IN运算符与任何东西

时间:2012-11-06 13:20:07

标签: 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的模式匹配,但没有找到任何可以匹配所有内容的东西。

$qstring="*";

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

任何提示?谢谢!

3 个答案:

答案 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);