MySQL query String containsMySQL查询字符串包含相反
您好,我试图让一个MySQL的查询,查找其中包含从主路线我设置字符串中的列值。所以如果我的主字符串是'1234567',我希望它返回列值为'1','2'等的任何结果......上面的链接和我能找到的一样接近,但我需要它在相反的方向进行比较。
例如:
WHERE '%{$needle}%' LIKE `column`
MySQL query String containsMySQL查询字符串包含相反
您好,我试图让一个MySQL的查询,查找其中包含从主路线我设置字符串中的列值。所以如果我的主字符串是'1234567',我希望它返回列值为'1','2'等的任何结果......上面的链接和我能找到的一样接近,但我需要它在相反的方向进行比较。
例如:
WHERE '%{$needle}%' LIKE `column`
如何
WHERE ? LIKE CONCAT('%', `column`, '%')
其中?
是因为你是使用PDO或MySQLi扩展,右有您的主值(1234567)绑定参数占位符?
当然,您绝对不会使用不推荐使用的MySQL扩展。
就像一个魅力!谢谢 – user2934055
你有点含糊被存储在不同的值,其中(文本使用了如“主路线”,但示例代码使用不同的名称)。
你可以用regexp
做你想做的。下面是一个例子:
select 'abcd6efg' regexp concat('.*[', '1234567', '].*')
坦率地说,是regex
在一个重要的方面从like
不同。 regex
如果左侧字符串的任何部分匹配,则返回true,而对于like
,整个字符串必须匹配。所以,以下也适用:
select 'abcd6efg' regexp concat('[', '1234567', ']')
我喜欢把明确的通配符,以避免错误两者之间切换时。
您可以查看正则表达式文档here。
认为如果你想寻找'1','2'等等,你需要将它分成不同的字符 –