php - MySQL 查询字符串包含相反的内容

标签 php mysql sql

MySQL query String contains

您好,我正在尝试创建一个 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/

相关文章:

php - css 在 opera mini 和 blackberry 浏览器中不显示

php - session 问题

java - 在返回通过 JDBC 调用的单个结果的存储过程中,使用 out 参数与按列获取结果有什么区别?

mysql - 如何为一行插入和更新多个枚举值?

java - 尝试绑定(bind) NaN 时溢出

javascript - jquery动态隐藏和显示下拉菜单

java - 将 Batch 关键字应用于选择语句

php - PDF 不合并大于 PDF-1.5 版本使用 mPDF

php - 有人能解释一下为什么我的 MySQL 表数据没有显示吗?

sql - SQL标准是否指定约束验证和触发触发的顺序?