2013-10-29 136 views
0

MySQL query String containsMySQL查询字符串包含相反

您好,我试图让一个MySQL的查询,查找其中包含从主路线我设置字符串中的列值。所以如果我的主字符串是'1234567',我希望它返回列值为'1','2'等的任何结果......上面的链接和我能找到的一样接近,但我需要它在相反的方向进行比较。

例如:

WHERE '%{$needle}%' LIKE `column` 
+0

认为如果你想寻找'1','2'等等,你需要将它分成不同的字符 –

回答

0

如何

WHERE ? LIKE CONCAT('%', `column`, '%') 

其中?是因为你使用PDO或MySQLi扩展,右有您的值(1234567)绑定参数占位符?

当然,您绝对不会使用不推荐使用的MySQL扩展。

+0

就像一个魅力!谢谢 – user2934055

1

你有点含糊被存储在不同的值,其中(文本使用了如“主路线”,但示例代码使用不同的名称)。

你可以用regexp做你想做的。下面是一个例子:

select 'abcd6efg' regexp concat('.*[', '1234567', '].*') 

坦率地说,是regex在一个重要的方面从like不同。 regex如果左侧字符串的任何部分匹配,则返回true,而对于like,整个字符串必须匹配。所以,以下也适用:

select 'abcd6efg' regexp concat('[', '1234567', ']') 

我喜欢把明确的通配符,以避免错误两者之间切换时。

您可以查看正则表达式文档here