使用MySQL搜索字符串中的字符


Search for characters within a string with MySQL

例如,假设DB中有一个随机字符串:APKHDP

我想搜索所有包含PHP字符的字符串(按顺序)。所以我搜索PHP,它会返回上面的字符串。或者我搜索HPP,结果一无所获。

有没有一个简单的解决方案可以实现这一点,也许可以使用REGEX?听起来很简单。但到目前为止,我发现的asnwer非常复杂。

我正在将其与PHP一起使用(因此是示例!),如果这是最好的方法,我很乐意将PHP集成到解决方案中。

SELECT * FROM table WHERE text_field REGEXP '.*P.*H.*P.*'

医生。

使用MySQL正则表达式-您可以匹配事物,但不能替换-例如:

选择"APKHDP"REGEXP("[PHP]')

返回"1"(即正则表达式与字符串匹配)。

尽管上面的正则表达式可能不适合您的需要(它与字母p、H和p的任何使用相匹配),但您必须对此进行调整。

您可以使正则表达式更加复杂,也可以进行多次匹配:

SELECT field FROM TABLE WHERE field REGEXP(match1) AND field REGEXP(match2)..etc

无论你觉得哪一个最简单。。。

链接:REGEXP 的MySQL手册

SELECT * 
FROM  `COLUMNS` 
WHERE  `TABLE_NAME` 
REGEXP  'APKHDP'