Estado viendo ejemplos encontre este:
mysql> SELECT 1+'1';
-> 2
pero yo ocupo que me de el resultado de un string en su totalidad seria algo así SELECT '2*2+3'
.
Estado viendo ejemplos encontre este:
mysql> SELECT 1+'1';
-> 2
pero yo ocupo que me de el resultado de un string en su totalidad seria algo así SELECT '2*2+3'
.
El motor de SQL es capaz de evaluar expresiones matemáticas de forma nativa, por ejemplo: SELECT (2+3)/2
, sin embargo, en tu caso, lo que intentas es evaluar una expresión que pudiera estar guardada en una cadena ya sea en variable o en una columna. Para resolverlo puedes aprovechar las sentencias dinámicas de la siguiente manera:
set @formula = '(2+3)/2';
SET @sql = CONCAT('SELECT ''', @formula, ''' FORMULA,', @formula, ' RESULTADO');
PREPARE StmtStd FROM @sql;
EXECUTE StmtStd;
Salida:
╔═══╦═════════╦═══════════╗
║ # ║ FORMULA ║ RESULTADO ║
╠═══╬═════════╬═══════════╣
║ 1 ║ (2+3)/2 ║ 2,5000 ║
╚═══╩═════════╩═══════════╝
Las sentencias dinámicas son muy útiles pero si no tenemos control sobre las mismas, es un a puerta abierta a cualquier ataque de inyección de sql.