gpt4 book ai didi

javascript - 序列化查询以选择匹配或部分匹配的名称

转载 作者:行者123 更新时间:2023-12-03 04:54:23 25 4
gpt4 key购买 nike

我需要你的帮助。我正在使用 Node.js 和 ReactJS 开发 Web 服务器。我想为管理员创建一个名为“用户”的页面来搜索 SQL 数据库中的用户。我编写了一个代码,创建两个选项来按“姓名”或“国家/地区”搜索用户这是代码:

        UserSearch: {
fields : {
firstname: {value:'', type:'text', label:"Name", placeholder:'type name', bluredBefore:false, validators:['non'], errorReport:[]},
country: {value:'-1', type:'select', label:"Country", placeholder:'select country', staticDataSource:'countries', bluredBefore:false, validators:['non'], errorReport:[]},
},
errorReport:false,
isWaiting : false,
queryTarget: 'userFind',
queryView: 'UserSearchGrid',
queryViewFields: 'userId, firstname, lastname ',
formCols:3,
notification: '',

},

UserSearchGrid: {searchForm:'UserSearch',
viewFields: ['userId','firstname','lastname'],
dataSource:[], count:0, offset:0, limit:10},

在查询文件中我编写了以下代码:

  var where = {userId:userId,};
if (typeof args.firstname !== 'undefined' && args.firstname !== '')
where['firstname'] = args.firstname;
if (typeof args.country !== 'undefined' && args.country !== '-1')
where['country'] = args.country;

items = await UserProfile.findAndCountAll({

where: where, })

现在这两段代码创建一个文本框“名称”和一个下拉菜单“国家/地区”,管理员必须选择确切的用户名和正确的国家/地区才能获得结果。
我需要一个 Sequelize 查询,让管理员输入名称(名字或姓氏)或国家/地区,并获取任何匹配名称或部分匹配或匹配国家/地区的结果。

附加:我不知道是否可能,我希望在管理员写入姓名期间显示结果(匹配每个键入的字母并显示结果)。预先感谢任何人都可以提供帮助。

最佳答案

已解决:我将 if 语句编辑为如下所示:

    var where = {};
if (typeof args.firstname !== 'undefined' && args.firstname !== '')
// where['firstname'] = args.firstname;
where['$or']={firstname:{$like: `%${args.firstname}%`},lastname:{$like: `%${args.firstname}%`}};



items = await UserProfile.findAndCountAll({
where: where , })

(where) 是一个包含子句 (or) 的对象,它会从包含 (args.firstname) 的数据库名字或姓氏中进行选择 - 由管理员输入 -

例如:我想在数据库中搜索用户“John”,如果我输入“Jo”,它将获得数据库中名字或姓氏为“John”的所有用户的结果,因为它们包含“Jo” “以他们的名义。

关于javascript - 序列化查询以选择匹配或部分匹配的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42502352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com