Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Как сделать рекурсию на mysql?

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Прочее] >> Как сделать рекурсию на mysql?
Имя
Сообщение << Старые топики   Новые топики >>
Как сделать рекурсию на mysql? - 2008-08-17 21:30:17.940000   
#prodex

Сообщений: 26
Оценки: 0
Присоединился: 2008-06-28 00:48:10.173333
У меня есть рекурсия, которая реализована с помощь php+mysql. И в результате, сервак грузится и мускул грузит, а нужно так запрос сварганить, что ы один мускул пахал.
Вопрос:
Как сделать на mysql функцию, что бы реализовать потом рекурсию?
Post #: 1
RE: Как сделать рекурсию на mysql? - 2008-08-18 09:04:56.233333   
Parano1d

Сообщений: 423
Оценки: 0
Присоединился: 2008-05-21 13:40:17.093333
а что ты делаешь рекурсивно?
Post #: 2
RE: Как сделать рекурсию на mysql? - 2008-08-18 10:40:20.486666   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
Выкладывай часть базы и задание, тогда наверняка сможем помочь.
Post #: 3
RE: Как сделать рекурсию на mysql? - 2008-08-18 20:53:25.520000   
#prodex

Сообщений: 26
Оценки: 0
Присоединился: 2008-06-28 00:48:10.173333
Есть в mysql функции или условия типа while, if?
Post #: 4
RE: Как сделать рекурсию на mysql? - 2008-08-18 22:01:03.370000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: #prodex
Есть в mysql функции или условия типа while, if?

Напрямую к sql эти понятия неприменимы. Но, если посмотреть ширее, то чем не цикл такой запрос:select * from tblname;Вполне себе цикл, который в данной ситуации обрабатывает все записи в таблице, и возвращает их в массиве. Точно также условия:select * from tblname where id=0;Вот тебе и условие, ещё и в цикле.

Но тебе правильно сказали: выкладывай условие задачи.
Post #: 5
RE: Как сделать рекурсию на mysql? - 2008-08-19 12:55:49.703333   
riris

Сообщений: 5
Оценки: 0
Присоединился: 2008-08-17 07:55:16.723333
Ты лучше покажи сам запрос. Откуда мы знаем, что именно тебе надо.
вообще есть IF() в мускуле.

IF(expr1,expr2,expr3)
Если expr1 равно значению ИСТИНА (expr1 <> 0 и expr1 <> NULL), то функция IF() возвращает expr2, в противном случае - expr3. В зависимости от контекста функция IF() может возвращать либо числовое, либо строковое значение:
mysql> SELECT IF(1>2,2,3);
-> 3
mysql> SELECT IF(1<2,'yes','no');
-> 'yes'
mysql> SELECT IF(STRCMP('test','test1'),'no','yes');
-> 'no'

или

CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result …] [ELSE result] END , CASE WHEN [condition] THEN result [WHEN [condition] THEN result …] [ELSE result] END

В первом варианте возвращается значение result, если value=compare-value. Во втором - результат для первого указанного условия condition, если оно истинно. Если соответствующая величина результата не определена, то возвращается значение result, указанное после оператора ELSE. Если часть ELSE в выражении отсутствует, возвращается NULL:


mysql> SELECT CASE 1 WHEN 1 THEN "one"
WHEN 2 THEN "two" ELSE "more" END;
-> "one"
mysql> SELECT CASE WHEN 1>0 THEN "true" ELSE "false" END;
-> "true"
mysql> SELECT CASE BINARY "B" WHEN "a" THEN 1 WHEN "b" THEN 2 END;
-> NULL


Post #: 6
Страниц:  [1]
Все форумы >> [Прочее] >> Как сделать рекурсию на mysql?







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.