如何从Firebase中通过多值检索Item ID
嘿,我来帮你搞定这个需求!要根据Brand、ItemName、SubCategory这三个属性检索对应的Item ID并赋值给变量,得看你是在什么环境下实现,我给你几个常见场景的解决方案:
方案1:直接用SQL查询(数据库场景)
如果是直接在数据库里执行查询并赋值给变量,不同数据库的语法略有差异,这里给你两个主流数据库的示例:
MySQL 示例
-- 定义变量并赋值 SET @item_id = (SELECT ID FROM your_table_name WHERE Brand = 'Manchee' AND ItemName = 'Cream Cracker' AND SubCategory = '100g');
记得把your_table_name替换成你实际的表名,执行后@item_id变量就会存储匹配到的ID值。
SQL Server 示例
-- 先声明变量类型,再赋值 DECLARE @item_id INT; -- 假设ID是整数类型,根据实际类型调整 SELECT @item_id = ID FROM your_table_name WHERE Brand = 'Manchee' AND ItemName = 'Cream Cracker' AND SubCategory = '100g';
方案2:Python中封装成函数(结合数据库)
如果是在Python里实现这个逻辑,比如用sqlite3或pymysql操作数据库,这里以sqlite3为例写个可复用的函数:
import sqlite3 def get_target_item_id(): # 连接数据库,替换成你的数据库路径/配置 conn = sqlite3.connect('your_database.db') cursor = conn.cursor() # 带参数的查询,避免SQL注入 query = """ SELECT ID FROM your_table_name WHERE Brand = ? AND ItemName = ? AND SubCategory = ? """ cursor.execute(query, ('Manchee', 'Cream Cracker', '100g')) # 获取结果,处理无匹配的情况 result = cursor.fetchone() item_id = result[0] if result else None # 关闭连接 cursor.close() conn.close() return item_id # 调用函数获取ID并赋值给变量 target_item_id = get_target_item_id()
如果没有找到符合条件的记录,函数会返回None,你可以根据需求添加日志或错误提示逻辑。
方案3:Excel中用函数实现
要是你在Excel里需要获取这个ID,分两种情况给你公式:
XLOOKUP 公式(Excel 365及以后版本)
假设数据在A-D列:A列是ID,B列Brand,C列ItemName,D列SubCategory,公式如下:
=XLOOKUP(1, (B:B="Manchee")*(C:C="Cream Cracker")*(D:D="100g"), A:A, "未找到匹配项")
没有匹配结果时会显示“未找到匹配项”,可自行修改提示文本。
INDEX+MATCH 公式(兼容旧版Excel)
=INDEX(A:A, MATCH(1, (B:B="Manchee")*(C:C="Cream Cracker")*(D:D="100g"), 0))
旧版Excel需要按Ctrl+Shift+Enter作为数组公式执行,Excel 365直接回车即可。
内容的提问来源于stack exchange,提问作者S.B.S.Kaushalya
相关产品推荐
相关产品推荐

