I have two tables toponlinestores and brands when running the queries (listed below) in MySQL WorkBench, they are working fine but using node-mysql I am getting data only from first table
set @toponlinestores=3;
set @brands=2;
SELECT * from (
SELECT
'toponlinestores' as 'table_name',store_name,tl.id as website_id,
@toponlinestores * (MATCH(store_name) AGAINST ('f*' IN BOOLEAN MODE)) as relevance
from toponlinestores tl
UNION
SELECT
'brands' as 'table_name',brand_name,
br.id as brand_id,
@brands * (MATCH(brand_name) AGAINST ('f*' IN BOOLEAN MODE)) as relevance
from brands br
)
as sitewide WHERE relevance > 0;
**result :
1. toponlinestores flipkart 2 3.051822781562805
2. brands fossil_mini 18 1.6311430931091309**
But when I am using node-mysql
var sql1 = 'set @toponlinestores=3';
var sql2 = '@brands=2';
var sql3 = "SELECT * from ("+
"SELECT "+
" 'toponlinestores' as 'table_name',store_name as name,id as id, "+
" @toponlinestores * (MATCH(store_name) AGAINST ('f*' IN BOOLEAN MODE)) as relevance"+
" from toponlinestores "+
" UNION "+
"SELECT "+
" 'brands' as 'table_name',brand_name as name, " +
"id as id, " +
" @brands * (MATCH(brand_name) AGAINST ('f*' IN BOOLEAN MODE)) as relevance "+
" from brands"+
")"+
"as sitewide WHERE relevance > 0";
var query1 = connection.query(sql1);
query1.on("error", function (err) {
// handle error
});
query1.on("end", function () {
var query2 = connection.query(sql2);
query2.on("error", function (err) {
// handle error
});
query2.on("end", function () {
connection.query(sql3,function(err,res_data)
{
if(err) console.log(err);
else
{
res.json(res_data);
console.log(res_data);
}
});
});
});
The result is: 1. toponlinestores flipkart 2 3.051822781562805
I am not getting data from the second table but when I am executing same query in MySQL WorkBench I am getting data from both tables.
Please help - thanks in advance.
try this :-
var sql2 = 'set @brands=2';
in place of
var sql2 = '@brands=2';