gpt4 book ai didi

php - MySQL正确选择方式

转载 作者:行者123 更新时间:2023-11-29 05:37:28 26 4
gpt4 key购买 nike

我有如下表格

id    field_id     field_value         user_id
1 4 'london' 12
2 4 'manchester' 33
3 25 'accounting' 12
4 25 'web designer' 37
5 27 'food' 12
6 27 'wine' 34

我现在的问题是我需要用人类的方式查询它,如下所示,

我需要在选择查询时以某种方式拆分表格,以便我可以像这样进行搜索,

我需要搜索所有具有(“伦敦”)和(“会计”或“网页设计”)和(食品或 Wine )的用户

我的问题是我不能将 field_value 拆分为单独的“location”、“job title”、“interests”,如果它们在不同的领域,我会发现这很容易做到,但事实上在同一字段上,我发现很难使用 AND 和 OR 组合,

如果问题难以理解,我会尝试进一步解释。非常感谢

此外,如果有 phpmysql 解决方案的组合,我也不介意:)

最佳答案

您遇到问题是因为您的表是使用 EAV (Entity–attribute–value model) 设计的(反)模式。

一个更好的表设计是有一个表“locations”,一个表“job title”和一个表“interests”。它还可以解决您的问题。

但是,您可以使用这种设计,但它更麻烦。

我需要搜索所有具有(“伦敦”)和(“会计”或“网页设计”)和(食品或 Wine )的用户

SELECT y1.* 
FROM yourtable y1
JOIN yourtable y2
ON y1.USER_ID = y2.USER_ID
JOIN yourtable y3
ON y2.USER_ID = y3.USER_ID
WHERE y1.field_id = 4
AND y1.field_value = "london"
AND y2.field_id = 25
AND y2.field_value IN ("accounting", "web design")
AND y3.field_id = 27
AND y3.field_value IN ("food", "wine")

关于php - MySQL正确选择方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9514497/

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