我有一个cd source
find . -iname *.jpg | shuf | head -n 2100 | xargs -I{} mv {} ../dest/{}
表,其中包含以下字段:
lessons
用户可以通过界面选择要打开的女巫课程。
他将开始选择语言,然后是类型,最后是级别。
在此过程中,我想使用单个sql语句查询数据库,但是当然,第一个查询将仅具有language字段。我想出了这种语法,但它不起作用:
id title type language level
我如何使其工作?
答案 0 :(得分:2)
为降低检查变量和构建查询的复杂性,您可以向函数传递要匹配的对象,想要的对象以及要返回的列等(因为*
不理想)。 / p>
类似这样:
function queryLessonList (where = {}, columns = ['*']) {
let keys = Object.keys(where)
let values = Object.values(where)
columns = !columns.length || columns[0] === '*' ?
'*': columns.map(e => '`'+e+'`').join(',')
let sql = `
SELECT ${columns}
FROM lessons
${keys.length ? 'WHERE \`'+keys.join('` = ? AND `')+'\` = ?' : ''}
`
return query(sql, values)
}
/*
SELECT *
FROM lessons
WHERE `language` = ? AND `type` = ?
*/
queryLessonList({
language: 'en',
type: 'foo'
}, [])
/*
SELECT `id`
FROM lessons
*/
queryLessonList({}, ['id'])
/*
SELECT *
FROM lessons
*/
queryLessonList()