Skip to content
This repository has been archived by the owner on Jun 9, 2024. It is now read-only.

Error in import database #2

Open
noor-mhmd opened this issue Jun 24, 2021 · 1 comment
Open

Error in import database #2

noor-mhmd opened this issue Jun 24, 2021 · 1 comment

Comments

@noor-mhmd
Copy link

Hello

Please I face this problem in import database

CREATE FUNCTION checkAnswer(resID INT, qID INT) RETURNS tinyint(1)
BEGIN
DECLARE RES INT;
IF ((select type from question where id = qID) = 0 || (select type from question where id = qID) = 3) THEN
(select count() INTO RES from (
SELECT answerID From result_answers ra WHERE resultID = resID AND questionID = qID
AND answerID IN (SELECT id FROM question_answers where isCorrect and questionID = ra.questionID)
) as t
HAVING COUNT(
) = (SELECT COUNT() FROM question_answers where questionID = qID AND isCorrect));
IF RES > 0 THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
ELSEIF ((select type from question where id = qID) = 2) THEN
(SELECT COUNT(
) INTO RES From result_answers RA WHERE resultID = resID AND questionID = qID
and textAnswer IN (SELECT answer FROM question_answers where questionID = RA.questionID));
IF RES > 0 THEN
RETURN TRUE;
ELSE
RETURN FALSE; [...]

MySQL said: Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INTO RES from (
SELECT answerID From result_answers ra WHERE resultID = resI' at line 5

and some features don't work

@Deepaksahu4334
Copy link

replace your perticular code with this

CREATE FUNCTION checkAnswer(resID INT, qID INT) RETURNS tinyint(1)
BEGIN
DECLARE RES INT;

IF ((SELECT type FROM question WHERE id = qID) = 0 OR (SELECT type FROM question WHERE id = qID) = 3) THEN
    SELECT COUNT(*) INTO RES
    FROM (
        SELECT answerID
        FROM result_answers ra
        WHERE resultID = resID AND questionID = qID
        AND answerID IN (SELECT id FROM question_answers WHERE isCorrect = 1 AND questionID = ra.questionID)
    ) AS t
    HAVING COUNT(*) = (SELECT COUNT(*) FROM question_answers WHERE questionID = qID AND isCorrect = 1);
    
    IF RES > 0 THEN
        RETURN TRUE;
    ELSE
        RETURN FALSE;
    END IF;
    
ELSEIF ((SELECT type FROM question WHERE id = qID) = 2) THEN
    SELECT COUNT(*) INTO RES
    FROM result_answers RA
    WHERE resultID = resID AND questionID = qID
    AND textAnswer IN (SELECT answer FROM question_answers WHERE questionID = RA.questionID);
    
    IF RES > 0 THEN
        RETURN TRUE;
    ELSE
        RETURN FALSE;
    END IF;
    
ELSE
    RETURN FALSE; -- Handle other cases or errors if necessary
END IF;

END

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants