【问题标题】:How do I find the records containing a comma-separated value? [duplicate]如何查找包含逗号分隔值的记录? [复制]
【发布时间】:2016-11-29 12:33:54
【问题描述】:

我的数据库中有一个字段包含逗号分隔的整数,例如:

"4,6,18,26,29,34"

我需要构造一个 SQL 查询,它将返回包含特定给定整数的记录,例如6,所以我当前的查询是这样的:

SELECT * FROM mytable WHERE CSVField LIKE "%,6,%"

我用逗号将所需值括起来以避免 6 匹配 26 但是很明显,我当前的查询不会与字段中的第一个或最后一个值匹配,因为该字段没有开始或结束用逗号,所以在上面的例子中它永远不会找到434

我怎样才能编写我的查询以便它做我想做的事?

【问题讨论】:

标签: mysql


【解决方案1】:

你可以试试:

SELECT * FROM mytable WHERE CSVField LIKE "%,6,%"
                         OR CSVField LIKE "6,%"
                         OR CSVField LIKE "%,6"

希望你的桌子很小。

更新

按照米海的帖子,试试:

SELECT * FROM mytable WHERE FIND_IN_SET(CSVField,'6') > 0

【讨论】:

  • 虽然我喜欢我的回答(对读者来说绝对清楚),但最好还是 Mihai 的建议。
猜你喜欢
  • 2012-10-10
  • 2019-09-05
  • 2016-12-26
  • 1970-01-01
  • 2022-06-10
  • 2010-10-23
  • 1970-01-01
  • 2011-08-02
  • 1970-01-01
相关资源
最近更新 更多