MYSQL使用LIKE进行特定搜索

时间:2013-07-24 17:35:16

标签: mysql string search sql-like

我遇到了一个我不确定如何接近的搜索情况。我正在搜索一组列,例如一个字符串

Row 1: Column Content: 7;15;25
Row 2: Column Content: 5
Row 3: Column Content: 5;7

但我想要只有5个

的行

示例:Select * from table where column like '%5%'

这种情况的问题是,当我只需要第2行和第3行时,查询将带回所有行

我能用查询做些什么来让我恢复想要的结果。

我真的很感激你的帮助。如果对这个问题有任何疑惑,我会很高兴澄清。

1 个答案:

答案 0 :(得分:1)

怎么样:

SELECT * FROM MyTable WHERE
CONTENT LIKE '5;%'      -- Starts with 5
OR CONTENT LIKE '%;5;%' -- 5 in the middle somewhere
OR CONTENT LIKE '%;5'   -- Ends with 5
OR CONTENT = '5';       -- 5 is the only item in the list

您还可以将其简化为:

SELECT * FROM MyTable WHERE concat(';',CONTENT,';') LIKE '%;5;%';

这两种解决方案都可能导致相当差的性能,特别是如果您的桌子很大。为了解决这个问题,我建议对这些数据进行标准化,并将每个选择作为一行存储在另一个表中。