MySQL查询字符串包含相反的

时间:2013-10-29 22:01:05

标签: php mysql sql

MySQL query String contains

您好,我正在尝试创建一个mysql查询,查找包含我设置的主字符串中的字符串的列值。因此,如果我的主字符串是'1234567',我希望它返回任何具有'1','2'等列值的结果......上面的链接尽可能接近我能找到但我需要的它在相反的方向上进行比较。

例如:

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

2 个答案:

答案 0 :(得分:1)

您对存储各种值的位置有点模糊(您的文本使用“主字符串”之类的术语,但示例代码使用不同的名称)。

您可以使用regexp执行所需操作。这是一个例子:

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

说实话,regex在一个重要方面与like不同。如果左侧字符串的任何部分匹配,则regex返回true;而对于like,整个字符串必须匹配。因此,以下也有效:

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

我喜欢将显式通配符放入,以避免在两者之间切换时出错。

您可以查找正则表达式here的文档。

答案 1 :(得分:0)

怎么样

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

其中?是一个占位符,其值具有绑定参数(1234567),因为 使用PDO或MySQLi扩展名,对吗?< / p>

当然,你肯定不会使用已弃用的MySQL扩展程序。