提问人:Luk 提问时间:10/25/2023 最后编辑:Luk 更新时间:10/26/2023 访问量:55
使用 mysql LIKE 对多个列进行 indexeddb 搜索
Indexeddb search on multiple columns using mysql LIKE
问:
我正在开发一个 PWA,我有一个数据库,我想像这样查询:
SELECT * FROM plants WHERE (plant_genus LIKE 'Ab%') AND (plant_species LIKE 'pr%')
索引的定义如下:
surveyPlantsOS.createIndex("multiple", ['plant_genus', 'plant_species', 'occurrence'], { unique: false });
我尝试了以下方法:
const midRange = IDBKeyRange.bound(['Ab','pr'], ['Ab'+'\uffff','pr'+'\uffff']);
let cursor = await dbTT.getAllFromIndex('tt_survey_plants', 'multiple', midRange)
这在第一列上工作正常,但忽略第二列。
我希望“Ab”在“plant_genus”列上搜索,“pr”在“plant_species”列上搜索
任何帮助将不胜感激。
目前,我已经通过以这种方式解析结果集解决了这个问题:
if (cursor) {
for (const [key, value] of Object.entries(cursor)) {
if (arrChars.length > 1) {
if (value.plant_species.indexOf(arrChars[1]) != -1) {
//console.log('found ', `${value.plant_genus} ${value.plant_species} `)
data[value.plant_genus+' '+value.plant_species] = null
}
}
else
data[value.plant_genus+' '+value.plant_species] = null
}
}
答: 暂无答案
评论