考虑下表和消息。其中一些有一个或多个形式{bar|***}
的标签,可以***
是任何东西(字母、数字、标点符号)。
id message
---------------------------------------------------
1 foo {bar|112} baz {bar|foo} {bar|215.54}
2 lorem ipsum {bar|foo} dolor {bar|samet} digitas
3 last {bar|t} label example
4 string with no label
5 another {zoo} string with {foo|ads} label
如果我想查找具有至少一个 {bar| 形式的标签的所有消息 * } 我查询:
SELECT * FROM messages WHERE message LIKE '%{bar|%';
但是现在,我需要一个查询,我只能选择那些最多有两个这样的标签的消息:
id message
---------------------------------------------------
2 lorem ipsum {bar|foo} dolor {bar|samet} digitas
3 last {bar|t} label example
换句话说:有没有办法(在 MySQL 中)计算消息中标签的数量并只返回其中包含一个或两个标签的消息?