My previous question not giving clear idea about my problem that why asking a new question
Here is my table structure
1.id,subject(varchar),category(varchar),medium(json),material(json),style(json)
.
User can able to search based on the values in table fields ie if user choose only subject
(he can select it from multiple select dropdown) query result contains rows that matches the selected items. if user selected subject and category query result contains rows that matches the selected items and so on (in short its filter search like shopping websites)
The problem is i don't how can i efficiently build the MySQL query based on these inputs because some of the mysql fields are json
Here is the separate SQL query's
//select rows that contains subject test or test1
SELECT * FROM `cushbu_art` WHERE subject IN ('test','test1')
//select rows that contains medium is paper or food
SELECT * FROM `cushbu_art` WHERE (JSON_CONTAINS(medium,'["paper"]') OR JSON_CONTAINS(medium,'["food"]')
)
Here is a sample input with two parameters (subject
and medium
)
{
"subject":["test","test1"],
"medium":["paper","wood"],
"category":"",
"material":"",
"style":""
}
Note: Input and output are in JSON (REST API)
db.js
function(req,res){
var sql = '';
if(req.body.subject){
sql+=//PREPARE SUBJECT QUERY
}
if(req.body.medium){
sql+=//PREPARE QUERY
}
//FINAL SQL QUEREY HERE';
db.query(sql,function(error,result){
console.log(result);
});
}
via Jabaa
No comments:
Post a Comment