0

次の2つのステートメントに違いはありますか?

mysql> EXPLAIN SELECT IF(arms IS NULL, 'asdf', arms) FROM limbs;
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
|  1 | SIMPLE      | limbs | ALL  | NULL          | NULL | NULL    | NULL |   12 |       |
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
1 row in set (0.00 sec)

mysql> EXPLAIN SELECT IF(arms IS NULL, 'asdf', arms) FROM limbs;
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
|  1 | SIMPLE      | limbs | ALL  | NULL          | NULL | NULL    | NULL |   12 |       |
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
1 row in set (0.00 sec)

一方のパフォーマンスが優れているのでしょうか、それとももう一方のパフォーマンスよりも好ましいのでしょうか。それとも同じですか?

4

1 に答える 1

1

IFNULLは、 ANSISQLの構文IF糖衣ですCASE

したがって、好きな方と特定のニーズに合った方を使用してください。

PS:EXPLAINに依存していませんSELECT

于 2012-06-21T22:28:07.870 に答える