我有一個產品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