您好,我正在尝试进行 mysql 查询,以查找包含来自我设置的主字符串的字符串的列值。因此,如果我的主字符串是“1234567”,我希望它返回具有“1”、“2”等列值的任何结果...上面的链接与我能找到的一样接近,但我需要它在相反的方向进行比较。
例如。:
WHERE '%{$needle}%' LIKE `column`
您好,我正在尝试进行 mysql 查询,以查找包含来自我设置的主字符串的字符串的列值。因此,如果我的主字符串是“1234567”,我希望它返回具有“1”、“2”等列值的任何结果...上面的链接与我能找到的一样接近,但我需要它在相反的方向进行比较。
例如。:
WHERE '%{$needle}%' LIKE `column`
您对存储各种值的位置有点模糊(您的文本使用“主字符串”之类的术语,但示例代码使用不同的名称)。
您可以使用regexp
. 这是一个例子:
select 'abcd6efg' regexp concat('.*[', '1234567', '].*')
老实说,在一个重要方面 regex
是不同的。如果左侧字符串的任何部分匹配,则返回 true,而对于整个字符串必须匹配。因此,以下方法也有效:like
regex
like
select 'abcd6efg' regexp concat('[', '1234567', ']')
我喜欢将显式通配符放入以避免在两者之间切换时出错。
您可以在此处查找正则表达式的文档。
怎么样
WHERE ? LIKE CONCAT('%', `column`, '%')
因为您使用的是 PDO 或 MySQLi 扩展,所以与您的主值 (1234567)?
绑定参数的占位符在哪里?
当然,您肯定不会使用已弃用的 MySQL 扩展。