5

私はテーブルを持っています

  • 販売注文

列名を持つこのテーブルでは

  • 注文番号
  • 注文の状況
  • 注文タイプ

SQL クエリ:

SELECT order_no FROM sales_orders where order_status='Pending' and order_type='1'

上記のクエリorder_type=1では、データベース列に値が存在しない場合、つまり値 1 の代わりに値 '0' があることを意味し、エラーを表示したいと考えています。

そのために上記のクエリを変更するにはどうすればよいですか?

4

5 に答える 5

1

私の理解が正しければ、order_type が 1 でない場合にエラーを表示する必要があります。その場合、次のようなことができます。

$query = "SELECT order_no FROM sales_orders where order_status='Pending' and order_type = 1";

if ($result = $mysqli->query($query)) {
    while ($row = $result->fetch_object()) {
        if ($row->order_type != 1) {
            printf('There is no rail order for order number %d', $row->order_no);
        }
    }

    $result->close();
}
于 2012-11-21T10:20:36.563 に答える
0

ついに必要なものを手に入れた...

これはクエリです:

  • $sql_da_num= "select order_no FROM sales_orders WHERE order_status='Pending' and order_type = '1');

                $result_da_num= db_query($sql_da_num);
                $num_rows = db_num_rows($result_da_num);
                if ($num_rows==0)
                {
                display_error("There is no Rail Order for this selected customer");
                }
                }
    
于 2012-11-21T12:52:59.467 に答える
0

try this:

SELECT IF(order_type=1,order_no,'Error') 
FROM sales_orders 
WHERE order_status='Pending'
于 2012-11-21T10:17:34.187 に答える
0

SQL は次のようになります (「エラーのある」結果も返す必要があるため、WHERE で order_type=1 を使用することはできません。そこで IF を使用する必要があります)。

SELECT IF(order_type=1,'OK','Error') AS okErrorFlag ,order_no
FROM sales_orders 
WHERE order_status='Pending'

SQLで(適切な行の結果のみが得られる結果として、連想配列を取得します):

if ($row['okErrorFlag']=='Error')
{
     echo 'ERROR: There is no rail order';
}
于 2012-11-21T10:21:22.143 に答える
0

caseステートメントを使用してみてください

select id,
case order_type
    when '1' then order_type
    when '0' then 'error'
end 
from
`sales_orders`
where order_status='pending'
于 2012-11-21T10:23:17.580 に答える