如何查询包含 IN 集合字段的数据库表?

如何查询包含 in 集合字段的数据库表?

查询 in 集合字段的最佳做法

当数据库表包含一个 in 集合字段(如 user_id),并且需要根据该字段中的特定值查询数据时,需要采用特定方法。

考虑下文中给出的查询:

select * from project where $this->auth->id in user_id......

这个查询的目的是找出当前登录用户参加的项目列表。然而,由于查询中的语法错误,它无法正常工作。

解决方法:

如果无法修改表结构,有两种方法可以使用:

  • find_in_set:此函数用于检查一个值是否在由逗号分隔的字符串(user_id 字段)中。例如,以下查询将找到 user_id 为 21 的项目:
find_in_set(21,user_id)
  • like:运算符用于模糊匹配。例如,以下查询将找到包含 user_id 为 21 的所有项目:
user_id like '21,%' or user_id like '%,21' or user_id like '%,21,%' or user_id=21

通过使用 find_in_set 或 like,可以查询 in 集合字段,并根据特定值返回相关数据。

以上就是如何查询包含 IN 集合字段的数据库表?的详细内容,更多请关注其它相关文章!