gpt4 book ai didi

mysql - 如何根据任意列条目列表返回 mysql 行?

转载 作者:行者123 更新时间:2023-11-29 12:14:43 25 4
gpt4 key购买 nike

我有一个包含产品 UPC 编号和供应商 ID 编号的数据库。多个供应商可能会提供相同的产品,因此针对 UPC 的简单查询可以(并且经常)返回多行。但是,有一个供应商偏好列表(因为供应商以不同的价格销售相同的产品),我的目标是返回来自最喜欢的供应商的产品条目。简而言之,给定编号为 1 到 5 的五个供应商,首选供应商列表可能是 $vendors = array(5,3,1,2,4);。不同的用户有不同的偏好列表。因此,现在我正在创建首选供应商列表,循环查询最多五次(实际上是 83 次),并在查询第一次返回行时停止。速度非常慢。是否有一个 MySQL 命令可以接受(排序)任意列值列表,并使用“LIMIT 1”仅返回第一个找到的值?

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;

最佳答案

试试这个

SELECT TOP 1 * FROM products WHERE upc='12345678123' AND vendor in ('5', '3')
Order BY
CASE WHEN Vendor = '5' THEN '1'
WHEN Vendor = '3' THEN '2'
ELSE Vendor END ASC

关于mysql - 如何根据任意列条目列表返回 mysql 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30023728/

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