0
My previous question對於我的問題沒有給出清晰的概念,這就是爲什麼我要問一個新問題。基於用戶輸入的Mysql過濾器查詢
這裏是我的表結構
id,
subject (varchar),
category(varchar),
medium(json),
material(json),
style(json)
用戶可以能夠基於表字段中的值來搜索也就是說,如果用戶只選擇subject
(他可以從多個選擇下拉菜單中選擇)的查詢結果中包含匹配行選定的項目。
如果用戶選擇的主題和類別查詢結果中包含匹配所選項目等(總之這是一個過濾的搜索,如購物網站)
的問題是我不我怎麼能有效地建立的行基於這些輸入的MySQL查詢,因爲一些Mysql列是JSON。
下面是單獨的SQL查詢:
// 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"]'))
這裏是兩個參數(subject
和medium
)
{
"subject":["test","test1"],
"medium":["paper","wood"],
"category":"",
"material":"",
"style":""
}
注意一個樣本輸入端:輸入和輸出是在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 QUERY HERE;
db.query(sql, function(error, result) {
console.log(result);
});
}