Как сделать рекурсию на mysql?
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Как сделать рекурсию на mysql? - 2008-08-17 21:30:17.940000
|
|
|
#prodex
Сообщений: 26
Оценки: 0
Присоединился: 2008-06-28 00:48:10.173333
|
У меня есть рекурсия, которая реализована с помощь php+mysql. И в результате, сервак грузится и мускул грузит, а нужно так запрос сварганить, что ы один мускул пахал. Вопрос: Как сделать на mysql функцию, что бы реализовать потом рекурсию?
|
|
|
RE: Как сделать рекурсию на mysql? - 2008-08-18 09:04:56.233333
|
|
|
Parano1d
Сообщений: 423
Оценки: 0
Присоединился: 2008-05-21 13:40:17.093333
|
а что ты делаешь рекурсивно?
|
|
|
RE: Как сделать рекурсию на mysql? - 2008-08-18 10:40:20.486666
|
|
|
oRb
Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
|
Выкладывай часть базы и задание, тогда наверняка сможем помочь.
|
|
|
RE: Как сделать рекурсию на mysql? - 2008-08-18 20:53:25.520000
|
|
|
#prodex
Сообщений: 26
Оценки: 0
Присоединился: 2008-06-28 00:48:10.173333
|
Есть в mysql функции или условия типа while, if?
|
|
|
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; Вот тебе и условие, ещё и в цикле. Но тебе правильно сказали: выкладывай условие задачи.
|
|
|
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
|
|
|
|
|