gpt4 book ai didi

mysql - 类似数据建模的实体值属性的查询优化

转载 作者:行者123 更新时间:2023-11-29 07:01:05 25 4
gpt4 key购买 nike

我得到了一张实体表,这些实体在任何给定时间都具有三种(可能还有更多)性格特征:

  1. 状况
  2. 社会
  3. 步骤

这些性格特征是什么并不重要,除了它们各自都有一大堆可能采用的不同值,而且它们一次可能只采用一个值。使用这三个字符特征,我想在表格中搜索应与实体一起显示的项目。

例如:当条件为 x1 并且 soc 为 y1 或 y2 并且步骤为任何内容时,显示“Hello”的项目

使用如下所示的(实体-值-属性)数据库建模,以下查询的行为符合我的要求。但是,我怀疑如果我不进行多个子查询,它可能会更有效。是否可以以更好的方式重写它?

SELECT DISTINCT journey_items.id, 
journey_items.category,
therapist_title,
therapist_body
FROM journey_items
WHERE EXISTS (SELECT id
FROM journey_item_display_rules
WHERE (`journey_item_id` = journey_items.id )
AND (`category` = 'soc' AND `value` = 'any')
)
AND EXISTS(SELECT id
FROM journey_item_display_rules
WHERE (`journey_item_id` = journey_items.id )
AND (`category` = 'condition' AND `value` = '38')
OR (`category` = 'condition' AND `value` = '25')
)
AND EXISTS(SELECT id
FROM journey_item_display_rules
WHERE (`journey_item_id` = journey_items.id )
AND (`category` = 'step' AND `value` = 'any')
)

item modeling attribute modeling

最佳答案

尝试在表中使用索引来优化查询时间。您还可以使用函数来提供您在 where 子句中使用的结果。

关于mysql - 类似数据建模的实体值属性的查询优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43478555/

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