【问题标题】:MySQL select where constant is in array in table [duplicate]MySQL选择表中的常量在数组中的位置[重复]
【发布时间】:2016-02-08 20:08:09
【问题描述】:

你好 StackOverflow 社区,

我对查找存储在数据库单元格中的内爆字符串中定义值的最佳方法(在资源/速度/等方面)有疑问。

即:(表中的所有元素都是 INT 或 STRING)

id | age | name | groups
=========================
0  | 28  | bob  | 1,2,3,4
1  | 33  | sara | 1,4

假设请求的组是 2, 最好选择所有用户并手动遍历他们的组以查看它是否与 2 匹配。(这听起来一点也不足智多谋)

或者有没有办法通过 MySQL 进行 constant IN array 查询

SELECT * FROM tableUsers WHERE 2 IN groups

这将选择 0 的用户 ID。

^ 显然这行不通,但有类似的替代方案吗?

【问题讨论】:

  • 哎呀!你真的应该考虑如何保存这些数据。以后会让你头疼的。
  • @JayBlanchard 看起来不可能/不可行。我必须回到客户那里重新构建数据库。

标签: php mysql


【解决方案1】:

很简单。你可以这样做:

SELECT * FROM tableUsers WHERE FIND_IN_SET(2,groups);

【讨论】:

  • @Jake Dev - 看我的回答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-10
  • 2010-09-26
  • 2012-01-08
  • 1970-01-01
  • 1970-01-01
  • 2012-04-08
  • 2018-02-11
相关资源
最近更新 更多