带变量的MYSQL SELECT CASE

时间:2016-06-05 10:49:14

标签: php mysql select case

您好我不知道如何使用带有变量的SELECT CASE来检查变量$ name是否为空 - 如果空的话应该被省略或$ name ='空的'。我不知道怎么写这个。任何的想法?我的代码:

    $name = $_POST['training_name'];
    $training_company = trim($_POST['training_company']);
    $training_type = trim($_POST['training_type']);
    $training_date = trim($_POST['training_date']);
    $training_date_expiring = trim($_POST['training_date_expiring']);
    $training_score = trim($_POST['training_score']);
    $training_place = trim($_POST['training_place']);
    $training_trainer = trim($_POST['training_trainer']);

    $score = mysqli_query($con,"SELECT * FROM kursanci WHERE imie_i_nazwisko LIKE '%$name%' OR firma='$training_company' OR rodzaj_szkolenia='$training_type' OR data_ukonczenia_szkolenia='$training_date' OR data_waznosci_szkolenia='$training_date_expiring' OR rezultat_szkolenia='$training_score' OR miejsce_szkolenia='$training_place' OR instruktor_prowadzacy='$training_trainer' ");

2 个答案:

答案 0 :(得分:1)

更改代码:

//$name = $_POST['training_name'];

$name = isset($_POST['training_name']) ?$_POST['training_name'] : 'empty';
$name = empty($name)? 'empty' : $name ;

答案 1 :(得分:0)

您可以使用如下所示的选择案例:

SELECT
        id,
        action_heading,
        CASE
            WHEN action_type = 'Income' THEN action_amount
            ELSE NULL
        END AS income_amt,
        CASE
            WHEN action_type = 'Expense' THEN action_amount
            ELSE NULL
        END AS expense_amt

    FROM tbl_transaction;