|
|
|
Преобразование текстового выражения в число
|
|||
|---|---|---|---|
|
#18+
Господа, приветствую всех! Уже весь мозг изломал. Имеется поле в бд, в котором есть строки типа Код: sql 1. Если я выполняю выражение Код: sql 1. То все нормально и я получаю знпчение выражения, т.е. 8,27 Но как мне выполнить запрос для поля? Выражение Код: sql 1. в результате получаю только первое число, т.е. 3,9 Помогите пожалуйста... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2016, 12:28 |
|
||
|
Преобразование текстового выражения в число
|
|||
|---|---|---|---|
|
#18+
Напрямую - никак. Можно в обход - написать свою функцию, которая будет собирать из этого выражения SQL-запрос и выполнять через prepared statement. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2016, 13:05 |
|
||
|
Преобразование текстового выражения в число
|
|||
|---|---|---|---|
|
#18+
miksoftНапрямую - никак. Можно в обход - написать свою функцию, которая будет собирать из этого выражения SQL-запрос и выполнять через prepared statement. Это будет сильно тормозить систему. Это некое подобие вычисляемых полей в Delphi. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2016, 14:56 |
|
||
|
Преобразование текстового выражения в число
|
|||
|---|---|---|---|
|
#18+
bssatЭто будет сильно тормозить систему.Смотря как и для чего применять. bssatЭто некое подобие вычисляемых полейА почему бы не использовать настоящие вычисляемые поля в MySQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2016, 15:35 |
|
||
|
Преобразование текстового выражения в число
|
|||
|---|---|---|---|
|
#18+
bssatИмеется поле в бд, в котором есть строки типа Код: sql 1. Кто мешает добавить в таблицу поле с результатом вычисления выражения? Его можно вычислять в момент вставки/изменения записи (причём считая как на стороне сервера, так и на стороне клиента), а можно и по шедулеру (ну а если он не успел, тогда в процедуре будет не прямой SELECT, а препарированный - или вычисление, занесение результата в таблицу, а потом прямой SELECT). А заодно и нужную точность результата обеспечишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2016, 16:14 |
|
||
|
Преобразование текстового выражения в число
|
|||
|---|---|---|---|
|
#18+
AkinabssatИмеется поле в бд, в котором есть строки типа Код: sql 1. Кто мешает добавить в таблицу поле с результатом вычисления выражения? Его можно вычислять в момент вставки/изменения записи (причём считая как на стороне сервера, так и на стороне клиента), а можно и по шедулеру (ну а если он не успел, тогда в процедуре будет не прямой SELECT, а препарированный - или вычисление, занесение результата в таблицу, а потом прямой SELECT). А заодно и нужную точность результата обеспечишь. Да. Но таблица уже существует, причем весьма не маленькая для ручного добавления итоговых данных. Процедур никаких нет, скорее всего все считалось на клиенте. Тормоза дикие. Придется писать изменялку, а уж потом мудрить. В любом случае - спсибо всем, принимавшим участие и тем, кто еще, возможно, примет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2016, 19:07 |
|
||
|
Преобразование текстового выражения в число
|
|||
|---|---|---|---|
|
#18+
bssatтаблица уже существует, причем весьма не маленькая для ручного добавления итоговых данных.А ручного-то занафига? добавить поле и один раз пройтись по таблице, пересчитать все выражения: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. А потом навесить на таблицу триггер, который будет (пере)считывать это дело при insert/update ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2016, 19:17 |
|
||
|
Преобразование текстового выражения в число
|
|||
|---|---|---|---|
|
#18+
Akina, Интересно, но на конкатенации вылетает ошибка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2016, 14:22 |
|
||
|
Преобразование текстового выражения в число
|
|||
|---|---|---|---|
|
#18+
Akina, Код: sql 1. 2. 3. Решил проблему вот так, спасибо большое! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2016, 14:32 |
|
||
|
Преобразование текстового выражения в число
|
|||
|---|---|---|---|
|
#18+
bssat, Кидаю полностью, может надо кому. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2016, 14:26 |
|
||
|
Преобразование текстового выражения в число
|
|||
|---|---|---|---|
|
#18+
bssat, А почему бы прямо в PREPARE не делать UPDATE, без промежуточного SELECT-а? Да и ошибки надо бы обрабатывать на случай, если выражение некорректное окажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2016, 14:30 |
|
||
|
Преобразование текстового выражения в число
|
|||
|---|---|---|---|
|
#18+
miksoftbssat, А почему бы прямо в PREPARE не делать UPDATE, без промежуточного SELECT-а? Да и ошибки надо бы обрабатывать на случай, если выражение некорректное окажется. Там не может быть ошибок. У меня обработка на этапе ввода выражения производится. Нельзя ввести, скажем 2 скобки закрывающие и открывающие, например. Да и вообще, там куча правил описана. А насчет UPDATE, надо подумать. Просто времени не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2016, 07:04 |
|
||
|
Преобразование текстового выражения в число
|
|||
|---|---|---|---|
|
#18+
bssatТам не может быть ошибок. У меня обработка на этапе ввода выражения производится.Такая убеждённость - это хорошо... но если она не базируется на проверке выражения попыткой его выполнения (или полной формализации - скажем, в польскую нотацию,- с контролем всех лексем), то скорее всего какая-нибудь лазейка найдётся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2016, 10:41 |
|
||
|
Преобразование текстового выражения в число
|
|||
|---|---|---|---|
|
#18+
AkinabssatТам не может быть ошибок. У меня обработка на этапе ввода выражения производится.Такая убеждённость - это хорошо... но если она не базируется на проверке выражения попыткой его выполнения (или полной формализации - скажем, в польскую нотацию,- с контролем всех лексем), то скорее всего какая-нибудь лазейка найдётся. Это не исключено. Но задача совсем не военного масштаба, да и люди, которые работают с программой совсем не заинтересованы в неверном вводе формул. Им же потом геморрой будет. А потом, все взято в try ... except. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2016, 10:45 |
|
||
|
Преобразование текстового выражения в число
|
|||
|---|---|---|---|
|
#18+
Нашел то, что искал долгое время... Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2016, 11:21 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39313275&tid=1831394]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
164ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 419ms |

| 0 / 0 |
