0

選択クエリからエイリアスを使用する方法について質問があります。

$timecheck = $db->query("SELECT DOE <= NOW() AS trigger FROM table WHERE a='$a'");
                if ($trigger != 0){
                    do  something
            }

これはエイリアスを使用する正しい方法ですか?タイムスタンプ期間の検証をチェックするためにエイリアストリガーが必要です。その期間が0以下の場合、「トリガー」は1を出力します。その場合、別のクエリを実行する必要があります。

だから私の質問が十分に明確であることを願っています。助けてくれる人がいれば本当にありがたいです。どうもありがとう。

4

5 に答える 5

1

triggerは予約済みのキーワードであるため、バックティックでカプセル化する必要があります。これは機能します:

SELECT DOE <= NOW() AS `trigger` FROM table WHERE a='$a'"
于 2012-04-04T09:14:46.880 に答える
1

「トリガー」は予約語かもしれないと思います。試す:

$timecheck = $db->query("SELECT (DOE <= NOW()) AS trggr FROM table WHERE a='$a' ");
$trggr = //getting the value
if ($trggr != 0){
    // something
}
于 2012-04-04T09:15:59.267 に答える
0

IF()呼び出しは、トリックを実行する必要があります。

SELECT IF( DOE <= NOW(), 1, 0 ) AS `trigger` FROM ...

編集:クリスチャンが指摘したように、トリガーするバックティックを追加しました。

于 2012-04-04T09:13:01.250 に答える
-1

私はそれがこのようなものであるべきだと信じています...

$timecheck = $db->query("SELECT DOE <= NOW() AS trigger FROM table WHERE a='$a'");
while ($timecheck->fetchInto($row, DB_FETCHMODE_ASSOC)) {
    if ($row['trigger'] != 0){
      do something
    }
}
于 2012-04-04T09:11:19.353 に答える
-2

その一般。また、このように使用できる場合もあります。サーバーによって異なります。(「AS」を使用せずに)

"SELECT DOE <= NOW()trigger FROM table WHERE a ='$ a'"

于 2012-04-04T09:10:55.750 に答える