您好,我正在尝试创建一个 mysql 查询,该查询查找包含我设置的主字符串中的字符串的列值。因此,如果我的主字符串是“1234567”,我希望它返回具有“1”、“2”等列值的任何结果...上面的链接与我能找到的内容尽可能接近,但我需要它以相反的方向进行比较。
例如:
WHERE '%{$needle}%' LIKE `column`
最佳答案
您对各种值的存储位置有点模糊(您的文本使用“主字符串”等术语,但示例代码使用不同的名称)。
您可以使用regexp
做您想做的事情。这是一个例子:
select 'abcd6efg' regexp concat('.*[', '1234567', '].*')
说实话,regex
在一个重要方面与 like
不同。如果左侧字符串的任何部分匹配,regex
返回 true,而对于 like
则整个字符串必须匹配。因此,以下方法也有效:
select 'abcd6efg' regexp concat('[', '1234567', ']')
我喜欢放入显式通配符以避免在两者之间切换时出现错误。
您可以查找正则表达式 here 的文档。
关于php - MySQL 查询字符串包含相反的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19670023/