如果未选中,MySQL SELECT会将列添加到查询中

时间:2014-07-28 08:34:11

标签: php mysql

我有这样的查询(在PHP中):

SELECT ".$info." FROM products WHERE id IN (".$id.")".($type != "" ? " AND p_type = '".$type."'" : "").";"

$info可以是任何内容(偶数*),但我想在结果(id, p_type)中另外添加两列,即使它们未被选中,也必须在那里,我已经尝试了这个"SELECT id, p_type, ".$info." ...,但它给了我一个错误,这个语法不正确,有什么帮助吗?

感谢。

3 个答案:

答案 0 :(得分:0)

可能是因为变量为空,请尝试:

 $info=($info=='')?'id, p_type':$info.',id, p_type';
   SELECT ".$info." FROM products WHERE id IN (".$id.")".($type != "" ? " AND p_type = '".$type."'" : "").";"

答案 1 :(得分:0)

好的,我解决了!如果$info = "*"需要先成为"SELECT ".$info.", id, p_type ...

答案 2 :(得分:0)

只需创建一个数组,如下所示,可以命名为

$getColumns = array("id", "p_type");

现在您必须逐个向此数组添加列,如下所示: -

$getColumns[] = "column3";
$getColumns[] = "column4";
$getColumns[] = "column5";

依此类推,如果你想获得所有列,只需将“*”添加到数组

即可
$getColumns[] = "*";

然后获取所有列的列表

$columns = (in_array("*", $getColumns))? "*": implode(", ", $getColumns);

现在,您可以在查询中使用$ columns。这都是......