【发布时间】:2014-05-08 01:58:04
【问题描述】:
SQL 操作符
我使用 IN 运算符是因为我在我的 SQL 语句中使用数组。
例如:
$city[1] = "'Paris'";
$city[2] = "'London'";
$cityString= implode(", ", $city);
SELECT * FROM Customers
WHERE City IN ($cityString);
但在我的代码中,我使用了 GET 或 POST 数组的值。但是当数组为空时没有值,所以我的 SQL 语句将不起作用。如果没有 if 语句并有数千条 SQL 语句的列表,我如何解决这个问题。
【问题讨论】:
-
if语句到底有什么问题? :S -
如果没有要比较的城市列表(至少一个),则 SQL 查询毫无意义。为了避免致命错误,您可能有一个虚拟的、不可能的城市名称(例如,“12345”),它应该返回 0 条记录。
-
@Tularis:因为它不是我想要使用的唯一数组,如果我为每个数组都做一个 if 语句,那会很复杂
-
@Phil Perry:我想要所有的记录,而不是返回 0 条记录。
-
你也可以把它变成一个函数,或者把它放在一个循环中,循环遍历你的所有记录/数组/任何东西,动态地将它们添加到你的结果查询中?完全跳过空的搜索参数(这样可以加快查询速度!)