mysql SELECT WHERE字符串包含字符

时间:2013-05-27 14:50:09

标签: mysql sql-like


我有一个表字段events,其中可以包含:

  • 只有一个数字序列,例如:45
  • 或数字序列除以符号|,例如55|65|76

我想我必须使用LIKE,但我不知道如何。你能救我吗?

由于

2 个答案:

答案 0 :(得分:3)

我建议您使用CONCAT在字段之前和之后添加管道|,然后使用LIKE搜索。像这样:

SELECT *
FROM YourTable 
WHERE concat('|',field,'|') like '%|45|%'

但是,我强烈建议您尝试规范化数据。考虑将这些存储在单独的行中,这将使搜索/维护更容易。

答案 1 :(得分:0)

要修复查询,请使用:

Select * from tbl where events='45' or events like '%|45' or events like '%|45|%' or   
events like '45|%'

但这非常慢,不应该使用。

相反,请按照Marc B的说明并创建子表events (ID, event)