0

以下は、users.i_dob に数式を適用しようとしているクエリです。挿入値がゼロでない場合、クエリはゼロを挿入する必要があります。私の機能を実現するために、次の実際のクエリを変更する方法を教えてください。

実際のクエリ:

 INSERT IGNORE into age ( i_age)
                SELECT DISTINCT FLOOR((TO_DAYS(NOW())- TO_DAYS(FROM_UNIXTIME(users.i_dob))) / 365.25)
            FROM users

私がクエリでやろうとしていること:

INSERT IGNORE into z_census ( i_age)
            SELECT IF (i_age == 0) i_age else FLOOR((TO_DAYS(NOW())- TO_DAYS(FROM_UNIXTIME(users.i_dob))) / 365.25)
            FROM users
4

2 に答える 2

1

MySQL IF構文を参照してください。次のようになります。

INSERT IGNORE into z_census (i_age)
SELECT IF(i_age=0, i_age,
    FLOOR((TO_DAYS(NOW())- TO_DAYS(FROM_UNIXTIME(users.i_dob))) / 365.25))
FROM users
于 2012-07-21T07:47:12.483 に答える
1

http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#function_if

INSERT IGNORE into z_census ( i_age)
            SELECT IF((i_age = 0), i_age, FLOOR((TO_DAYS(NOW())- TO_DAYS(FROM_UNIXTIME(users.i_dob))) / 365.25))
            FROM users
于 2012-07-21T07:47:45.163 に答える