检索并更改 MySQL 视图中使用的 SQL 以重新执行


Retrieve and alter the SQL used in a MySQL View for re-execution

如何使用

php 和 mysql 语句"显示创建视图视图名称"获取当前视图条件

我想将当前条件放入一个变量中,修改该变量,然后重新运行查询。我只是不知道如何使用 PHP 的语句。

感谢您的任何帮助

--编辑--

可能的代码:

if($_POST['flag']=='flag'){
    $sqlShow = 'show create view `filter_tbl`';
    $result = mysql_query($sqlShow);
    $resultQuery = $result;
    $resultQuery .= ' AND `lead_id`!="'.$idval.'"';
    $result2 = mysql_query($resultQuery);
    echo $result;
    if($result){
        echo true;
    }
    else{
        echo mysql_error();
    }
}

使用它来获取视图使用的 SQL 语句:

$viewSQL = "SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS 
WHERE TABLE_SCHEMA = 'myDatabase' AND TABLE_NAME = 'filter_tbl'";
$result = mysql_query($viewSQL);
$resultQuery = mysql_fetch_assoc($result);
$SqlUsedByView = $resultQuery['VIEW_DEFINITION'];
// Now alter the WHERE clause to your needs:
$MyNewSQL = str_ireplace( "WHERE ", "WHERE `lead_id`!=".$idval." AND " , $SqlUsedByView);

请注意,我不知道您的视图的实际 WHERE 子句是什么,因此上面的 str_ireplace() 只是您如何进行更改的示例。