1

MySQL 查询字符串包含

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

例如。:

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

2 回答 2

1

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

您可以使用regexp. 这是一个例子:

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

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

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

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

您可以在此处查找正则表达式的文档。

于 2013-10-29T22:22:55.003 回答
0

怎么样

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

因为您使用的是 PDO 或 MySQLi 扩展,所以与您的值 (1234567)?绑定参数的占位符在哪里?

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

于 2013-10-29T22:26:47.150 回答