A pesar de tu afirmación, tengo problemas para entender cómo es posible que esto:
Código sql:
Ver originalSELECT src, START+INTERVAL LENGTH SECOND AS Salida
FROM cdr
WHERE length>0
ORDER BY Salida DESC
LIMIT 10
funcione por las siguientes causas:
1. INTERVAL solo es una
función de comparación (INTERVAL(param1, param2, param3, ...)) cuya función devuelve el parámetro mayor del conjunto o sino -1.
2. INTERVAL como cláusula de una
función de fecha tal como la describes debería ser:
Código sql:
Ver originalDATE_ADD(START, INTERVAL xxx SECOND)
3. No se podría usar LENGTH como nombre de campo o de variable porque es una
palabra reservada por ser la función de caracteres LENGTH(x, y), que devuelve los y caracteres desde la izquierda de x.
4. No se puede usar START por ser
sentencia de inicio de transacciones (START TRANSACTION), y por lo tanto también es
palabra reservada.
Adicionalmente, el primer ejemplo contenía como error que estabas usando un alias como campo del WHERE,
que MySQL no admite.
Por estas razones, que puedo sostener manual en mano, es que como decía, es imposible que esa sentencia opere como dices porque no cumple con la sintaxis:
1. No contiene la función DATE_ADD() que supondría que estás invocando.
2. Contiene palabras reservadas como nombres de campo sin la resolución adecuada por medio de acentos (`).
Si puedes explicarme cómo es posible que funcione te lo agradecería.