Witam.
W szkole mam taki przedmiot jak administrowanie bazami danych z dość nieogarniętym nauczycielem.
Dostałem od niego następujące zadanie : Zrób funkcję w mysql zwracającą sumę licz dla przykładu jak ma to wyglądać wpisuję 123 a pokazuje mi po wykonaniu funkcji 6 . Nie wiem od czego wgl zacząć. Mógłby mi ktoś powiedzieć jakie rzeczy z Mysql muszę umieć żeby to ogarnąć lub napisać tę funkcję z dokładnym opisem co za co odpowiada ? Z góry dziękuję
Nie da się zrobić czegoś takiego w MySQL jak opisałeś. Albo źle coś napisałeś co masz zrobić, ewentualnie źle zrozumiałeś/przepisałeś co jest do zrobienia, albo nie masz tego zrobić w MySQL.
Jest też trzecia opcja, nauczyciel nie ma pojęcia co zadał i czego uczy.
Sprawa wygląda tak że robiliśmy pomniejsze funkcje w mysql które poprostu szukały czegoś w bazie danych.Przed świętami wpadł na genialny pomysł żeby nam się nie nudziło każdemu coś w tym stylu i wszystkim powiedział tylko że to ma być mysql i zrobione w funkcji. Jeśli by mu chodziło o php czy coś innego raczej nie było by problemu a że jest jak jest i tak powiedział to szukałem wszędzie i nic dalej nie wiem i pytam tutaj może specjalista się jakiś trafi
Takie podpowiedzi dostałem na innych forach :
- Napisz pętlę for i 1… length(‘123’), w środku pętli za pomocą funkcji substr wybieraj jeden znak i zapisuj go w innej zmiennej. Następnie sumuj te zmienne
- https://www.geeksforgeeks.org/sum-of-digits-of-a-number-in-pl-sql/?fbclid=IwAR3R3Im8H_81REl1CZYqAZU9bxgc4dwc0SE8z8KG9fmcqkBJwA8pNqHorfY
https://forum.webhelp.pl/php-i-bazy-danych/suma-liczb-w-wierszu-t23421.html
Google nie boli, mam nadzieję, ze naprowadziłem, całkiem skomplikowany kod jak na zwykłą szkołę
Wszystko by było spoko nie licząc tego że ten nauczyciel wymaga a nie uczy jeśli by też uczył to by problemu nie było
To sporo zmienia. Nie chodzi więc o funkcję a o zapytanie używające funkcji sumującej. Tylko dalej za mało informacji, potrzeba jeszcze wiedzieć jaka jest struktura bazy danych oraz jakie wartości masz zsumować. Bo na tą chwilę to zakrawa o tematykę czytania w myślach a nie bazy danych.
Wartości do zsumowania mam na samym początku wpisać sb w sensie uruchamiam funkcję dostaję miejsce na wpisanie dowolnych liczb w jednym ciągu a to ma je rozbić na oddzielne i wtedy je sumować
Czyli co, na wejściu funkcji dostajesz np. 1,2,3,4
a rezultatem działania funkcji ma być wartość 10
?
Na wejściu daję to w ciągu w sensie 1234 a tak pozatym to tak
Daj przykład tego jak to robiliście w szkole, może w ten sposób domyślimy się o co chodziło nauczycielowi.
Da się to rozwiązać przez rekurencyjne wywoływanie twojej funkcji jako parametr biorąc resztę z dzielenia przez 10. Sens dydaktyczny może i ma ale zastosowanie żadne. Wrzuć więcej przykładów tak jak @Fizyda wspominał.
A może jednak ma wyjść np. 24
z 1234
?