gpt4 book ai didi

MySQL查询获取类似于给定的列值

转载 作者:行者123 更新时间:2023-11-30 23:02:12 26 4
gpt4 key购买 nike

抱歉,如果我的问题似乎不清楚,我会尽力解释。
我有一个连续的列,例如 /1/3/5/8/42/239/,假设我想找到一个类似的,其中有尽可能多的对应“ids”尽可能。

示例:

   | My Column   |
#1 | /1/3/7/2/4/ |
#2 | /1/5/7/2/4/ |
#3 | /1/3/6/8/4/ |

现在,通过在 #1 上运行查询,我想获得 #2 行,因为它最相似。有什么办法可以做到还是只是我的幻想?感谢您的宝贵时间。

编辑:
正如建议的那样,我正在扩大我的问题。此列表示音乐网站上用户最喜欢的艺术家。我正在像这样搜索它们MyColumn LIKE '%/ID/%' 并通过将 /ID/ 替换为 /

来删除它们

最佳答案

由于您没有提供太多关于您的数据的信息,我必须用我的猜测来填补空白。

所以你有一个用户表

users table
-----------
id
name
other_stuff

并且您想存储用户最喜欢的艺术家。所以你必须有一张艺术家表

artists table
-------------
id
name
other_stuff

为了关联,您可以添加另一个名为收藏夹的表

favorites table
---------------
user_id
artist_id

在该表中,您为用户喜欢的每位艺术家添加了一条记录。

示例数据

users
id | name
1 | tom
2 | john


artists
id | name
1 | michael jackson
2 | madonna
3 | deep purple


favorites
user_id | artist_id
1 | 1
1 | 3
2 | 2

例如你可以选择用户 tom 的收藏夹

select a.name
from artists a
join favorites f on f.artist_id = a.id
join users u on f.user_id = u.id
where u.name = 'tom'

如果您为表添加适当的索引,那么这真的很快!

关于MySQL查询获取类似于给定的列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23496117/

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