multistorm
Goto Top

MySQL Function Anzahl Datensätze ermitteln

Hallo, aktuell stehe ich vor einem Problem bei dem ich nicht weiter komme.
ich wollte mit eine MySQL funtion Schreiben die für mich einen neuen User in die DB einrägt.
es soll nun aber vorab geprüft werden ob der benutzt schon exisitiert.

ich hatte es so probiert:

DECLARE foundLogin INT(1);
    SET foundLogin = 0;
	SELECT * FROM Users WHERE login = login;
    SELECT ROW_COUNT() INTO foundLogin;

aber der weg scheint komplett falsch zu sein, den ich bekomme vom SQL Serve nur gemecker zurück:

10:40:20	Apply changes to createNewUser	Error 1415: Not allowed to return a result set from a function SQL Statement:

Sollte doch eigentlich nicht so schwer sein oder?

lg

Content-Key: 327289

Url: https://administrator.de/contentid/327289

Printed on: April 24, 2024 at 15:04 o'clock

Member: atze187
atze187 Jan 24, 2017 updated at 11:40:11 (UTC)
Goto Top
1. Lange kein MySQL mehr gemacht, aber wird Benutzer-Variablen nicht ein @ vorangestellt?
2. Was spricht gegen folgendes?

SELECT COUNT(*) FROM ...
bzw.
SET @foundLogin = SELECT COUNT(*) FROM ...
Member: MultiStorm
MultiStorm Jan 24, 2017 at 12:21:50 (UTC)
Goto Top
funktioniert leider nicht,
er sagt gleich unexpetet Select mit und ohne @
Member: em-pie
Solution em-pie Jan 24, 2017 updated at 12:52:23 (UTC)
Goto Top
Moin,


wenn ich den obigen Fehler mal google, finde ich folgenden Eintrag:
http://stackoverflow.com/questions/11880306/why-mysql-is-giving-error-n ...

Es schjeint, dass er mit einer Variablenzuweisung nicht kla kommt.
Hast du mal mit Select xxx INTO yyy gearbeitet?

Und du musst oben ja kein Select * from Users machen...
Wähle einfach eine Spalte aus...


Gruß
em-pie
Member: MultiStorm
MultiStorm Jan 26, 2017 at 12:05:12 (UTC)
Goto Top
ja gegoogelt hatte ich das,
in zwischen läuft es auch, ich kann jetzt leider nicht mehr genau sagen was der fehler war, da ich da so viel drinne rumprobiert hatte,
aber ich glaube das Problem was das das COUNT(*) keine namenszuweisung hatte => COUNT(*) as Anzahl
Danke für dein bemühen !