SET @outpath =
'
/var/lib/mysql-files/'
;
SET @outfile = date_format(curdate(),
'
%Y%m%d'
);
SET @outextension = concat(@outpath,
'
StepCount_'
,@outfile,
'
.csv '
);
SET @SQL :=Concat(
"
select 'Participent Name','Email ID','DAY1','DAY2','DAY3','DAY4','DAY5','DAY6','DAY7','DAY8','DAY9','DAY10','DAY11','DAY12','DAY13','DAY14','DAY15','DAY16','DAY17','DAY18','DAY19','DAY20','DAY21','DAY22','DAY23','DAY24','DAY25','DAY26','DAY27','DAY28'
union all
select concat(ifnull(u.First_name,''),' ',ifnull(u.Middle_name,''),' ',ifnull(u.last_Name,'')) Name,u.email AS 'Email ID',ifnull(s.day_4,'') AS Day1,ifnull(s.day_5,'') AS Day2,ifnull(s.day_6,'') AS Day3,ifnull(s.day_7,'') AS Day4,ifnull(s.day_8,'') AS Day5,ifnull(s.day_9,'') AS Day6,ifnull(s.day_10,'') AS Day7,ifnull(s.day_11,'') AS Day8,ifnull(s.day_12,'') AS Day9,ifnull(s.day_13,'') AS Day10,ifnull(s.day_14,'') AS Day11,ifnull(s.day_15,'') AS Day12,ifnull(s.day_16,'') AS Day13,ifnull(s.day_17,'') AS Day14,ifnull(s.day_18,'') AS Day15,ifnull(s.day_19,'') AS Day16,ifnull(s.day_20,'') AS Day17,ifnull(s.day_21,'') AS Day18,ifnull(s.day_22,'') AS Day19,ifnull(s.day_23,'') AS Day20,ifnull(s.day_24,'') AS Day21,ifnull(s.day_25,'') AS Day22,ifnull(s.day_26,'') AS Day23,ifnull(s.day_27,'') AS Day24,ifnull(s.day_28,'') AS Day25,ifnull(s.day_29,'') AS Day26,ifnull(s.day_30,'') AS Day27,ifnull(s.day_31,'') AS Day28 from users u Left join step s on u.id=s.fk_user_id "
,CHAR(
39
),@outextension,CHAR(
39
)) ;
PREPARE stmt FROM @SQL;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
but getting below error --
Quote:
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''/var/lib/mysql-files/StepCount_20220117.csv '' at line 3
What I have tried:
Quote:
Remove the double commas , insert space between users and file name etc
but still getting same error.
UNION
ALL
SELECT
...
'
/var/lib/mysql-files/StepCount_20220117.csv'
That last line is not a valid MySql command. Assuming you want to write the query results to a file, you're missing the
INTO OUTFILE
clause:
MySQL :: MySQL 8.0 Reference Manual :: 13.2.10.1 SELECT ... INTO Statement
[
^
]
SET
@SQL
:=Concat(
"
select ..."
,
"
INTO OUTFILE "
,
CHAR
(
39
),
@outextension
,
CHAR
(
39
));
Read the question carefully.
Understand that English isn't everyone's first language so be lenient of bad
spelling and grammar.
If a question is poorly phrased then either ask for clarification, ignore it, or
edit the question
and fix the problem. Insults are not welcome.
Don't tell someone to read the manual. Chances are they have and don't get it.
Provide an answer or move on to the next question.
Let's work to help developers, not make them feel stupid.