【发布时间】:2011-10-25 20:40:21
【问题描述】:
我正在努力解决这个问题。我有一个不确定大小的键/值数组,我想用它来为 MySQL 查询生成动态 if 语句。
我的数组看起来像:
$arr = array("a" => "b", "c" => "d", "e" => "f");
考虑到最后的 MySQL 语句看起来像
SELECT
IF(field1 = 'a', 'b',
IF(field1 = 'c', 'd',
IF(field1 = 'e', 'f', default_value))) AS value FROM tbl;
我知道我必须做一个递归数组,但我不确定如何修改数组以使其不会陷入无限循环。我想像这样调用它:
$if_stmt = generate_if($arr, "default_value");
如果没有其他逻辑测试等于 true,则“default_value”是默认值。到目前为止我有
function generate_if(&$arr, $default_value = "default_value"){
foreach($arr as $orig => $new){
}
}
不知道如何继续.. 非常感谢任何帮助。
【问题讨论】:
-
查询中的
CASE不起作用吗?
标签: php mysql select if-statement recursive-query