|
Тема |
Re: Ама откъде го измъкна това COALESCE??? [re: Cтyдeнт] |
|
Автор |
salle (един такъв) |
|
Публикувано | 18.10.04 16:49 |
|
|
COALESCE() пък какво общо има в случая?
що не си направиш две отделни заявки с LIMIT 1 и да ги обединиш с UNION?
mysql> SELECT * FROM t;
+----+
| id |
+----+
| 3 |
| 7 |
| 8 |
| 9 |
| 12 |
| 13 |
| 14 |
| 15 |
+----+
8 rows in set (0.00 sec)
mysql> SET @val:=9; (SELECT MAX(id) FROM t WHERE id < @val) UNION (SELECT MIN(id) FROM t WHERE id > @val);
Query OK, 0 rows affected (0.02 sec)
+---------+
| MAX(id) |
+---------+
| 8 |
| 12 |
+---------+
2 rows in set (0.02 sec)
Наистина трябва да си поиграеш в граничните случаи ама не го прави с тая грозотия COALESCE, Използвай IF или направо IFNULL
А за да получиш 2 стойности и в случая когато таблицата има само един ред използвай UNION ALL
Редактирано от salle на 18.10.04 16:52.
|
| |
|
|
|