我有一个产品UPC号码和供应商ID号码的数据库。多个供应商可能提供相同的产品,因此针对UPC的简单查询可以(并且经常)返回多行。但是,有一个供应商偏好列表(因为供应商以不同的价格销售相同的产品),我的目标是从最受欢迎的供应商处退货。简而言之,如果有五个供应商编号为1到5,那么首选供应商列表可能是$ vendors = array(5,3,1,2,4);.不同的用户有不同的偏好列表。因此,现在我正在创建首选供应商列表,循环查询最多五次(实际上是83次),并停止第一次查询返回一行。这很慢。是否有单个MySQL命令接受(排序)任意列值的列表,并使用“LIMIT 1”仅返回第一个找到的值?如何基于列条目的任意列表返回mysql行?
SELECT * FROM products WHERE upc='123456789123' AND vendor='5';
SELECT * FROM products WHERE upc='123456789123' AND vendor='3';
理论上变得像...
SELECT * FROM products WHERE upc='12345678123' AND vendor=('5', '3') LIMIT 1;
正是你以后有什么?你需要供应商5或供应商3的输出? – SMA