首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql选择问题

mysql选择问题
EN

Stack Overflow用户
提问于 2011-03-17 19:32:00
回答 4查看 303关注 0票数 1

我有一张下面的桌子。

我想选择match this-> "Tip-1 = 225 And Tip-2 = 65 and Tip3 = 16“产品。

有%1个产品与查询匹配。产品ID % 2。

但是我不知道该怎么做,请帮帮我。

代码语言:javascript
复制
id  product_id  option_id   name    label   value
44  1                   4   Tip-5   Tip 5   Dört Mevsim
42  1                   2   Tip-2   Tip 2   65
48  2                   4   Tip-5   Tip 5   Dört Mevsim
47  2                   3   Tip-3   Tip 3   16
46  2                   2   Tip-2   Tip 2   65
45  2                   1   Tip-1   Tip 1   225
52  3                   4   Tip-5   Tip 5   Dört Mevsim
51  3                   3   Tip-3   Tip 3   16
50  3                   2   Tip-2   Tip 2   75
49  3                   1   Tip-1   Tip 1   215
60  4                   4   Tip-5   Tip 5   Dört Mevsim
58  4                   2   Tip-2   Tip 2   75
64  5                   4   Tip-5   Tip 5   Dört Mevsim
63  5                   3   Tip-3   Tip 3   12
62  5                   2   Tip-2   Tip 2   85
61  5                   1   Tip-1   Tip 1   155
59  4                   3   Tip-3   Tip 3   16
43  1                   3   Tip-3   Tip 3   16
41  1                   1   Tip-1   Tip 1   205
57  4                   1   Tip-1   Tip 1   205
72  6                   4   Tip-5   Tip 5   Dört Mev
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-17 19:37:19

试试这个:

代码语言:javascript
复制
SELECT product_id
FROM yourtable
WHERE (name, value) IN (('Tip-1', '225'), ('Tip-2', '65'), ('Tip-3', '16'))
GROUP BY product_id
HAVING COUNT(*) = 3

这里假设(product_id,name)是唯一的。如果不是,请改用COUNT(DISTINCT name)

票数 3
EN

Stack Overflow用户

发布于 2011-03-17 19:39:17

最好有自己的产品详细信息表,但要进行选择,请尝试以下命令

代码语言:javascript
复制
SELECT * FROM table_name WHERE (name = "Tip-1" AND value = 225) AND (name = "Tip-2" AND value = 65) AND (name = "Tip-3" AND value = 16) GROUP BY product_id

这可能会起作用,但表结构真的很糟糕,如果可能的话,你应该改变它。

票数 0
EN

Stack Overflow用户

发布于 2011-03-17 19:39:58

首先,除非您有非常特定的需求,否则这是一个糟糕的数据库设计。也就是说,

代码语言:javascript
复制
SELECT T1.product_id
FROM mytable T1
JOIN mytable T2 ON T1.product_id = T2.product_id
JOIN mytable T3 ON T1.product_id = T3.product_id
WHERE T1.name = 'Tip-1' AND T1.value = '255'
  AND T2.name = 'Tip-2' AND T2.value = '65'
  AND T3.name = 'Tip-3' AND T3.value = '16'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5338408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档