我有一个包含不同字段的表
id1 field = (1,2,4)
id2 field = (1,4)
id3 field = (2,4)
id4 field = (3,2)
我想通过field = 1
或3 => (1,3)
现在我这样做:
SELECT * FROM TABLE WHERE `field` LIKE '%1%' OR `field` LIKE '%3%'
我得到:id1, id2, id4
。
如何简化此请求?感谢
答案 0 :(得分:0)
你必须使用正则表达式。例如
SELECT * FROM TABLE WHERE `field` REGEXP '[[:<:]]1[[:>:]]' OR `field` REGEXP '[[:<:]]2[[:>:]]';
[[:&lt;:]],[[:&gt;:]]
这些标记代表字边界。他们匹配开头和 词尾,分别。一个单词是一系列单词字符 不在单词字符之前或之后的单词字符。一个字 character是alnum类中的字母数字字符或 下划线(_)。 http://dev.mysql.com/doc/refman/5.1/en/regexp.html