【问题标题】:Generating Query in MySql在 MySql 中生成查询
【发布时间】:2014-04-23 05:22:57
【问题描述】:

我正在开发一个简单的 PHP 报告页面,其中包含 HTML 选择工具,可以选择多个值。用户可以选择多个值,也可以选择全部选项。如果用户选择 All 选项,那么在查询中我不需要写 WHERE 条件,但是如果他从选择列表中选择一个或两个值,那么我只需要在 MySql WHERE 中写选择的值。如何编写通用查询以从 db 表中获取值。 这是我的第一个 Mysql 项目,我无法编写通用查询。 谢谢

【问题讨论】:

    标签: php mysql sql database


    【解决方案1】:

    您是说如果用户选择所有选项,您就不需要使用 WHERE 条件。但我认为这就是您编写通用查询的方式。始终使用 where 条件。在用户选择所有选项的情况下,输入“and”。假设您设法创建一个包含所有用户选择的选项 $options 的数组。遍历每个选项。有一个启动 sql 语句,如“Select * from table where”。然后为每个选项连接“option='$value'”。如果用户选择了所有选项,这不是问题。

    假设您设法将所有选定的选项放在一个数组中

    <?php
    $options = array("option1","option2","option3");
    $sql = "SELECT * FROM table WHERE ";
    $parts_sql = "";
    foreach ($options as $option){
            $parts_sql .="option=$option and ";
    }
    $sql = $sql . $parts_sql;
    $sql = substr($sql,0,strlen($sql)-5);
    echo $sql;
    ?>
    

    【讨论】:

    • 但是我猜想使用 where 和所有选项将花费更多时间从表中获取数据
    • 那么,在这种情况下,只要有一个 if 语句,有一个布尔值,它是 true 是所有选项都已被选择,然后是一个不同的 sql
    • 没关系...但是我有这么多字段,我想为所有字段编写 If 语句并不可取。有没有其他更简单的方法
    猜你喜欢
    • 1970-01-01
    • 2017-02-02
    • 2012-06-21
    • 1970-01-01
    • 2015-12-13
    • 2012-04-16
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多