Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用MySQL搜索字符串中的字符_Php_Mysql_Search - Fatal编程技术网

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

Php 使用MySQL搜索字符串中的字符,php,mysql,search,Php,Mysql,Search,例如,假设数据库中有一个随机字符串:APKHDP 我想搜索所有包含PHP字符的字符串(按该顺序)。所以我搜索PHP,它返回上面的字符串。或者我搜索HPP,它什么也不返回 有没有一个简单的解决方案可以做到这一点,也许是使用正则表达式?听起来很简单。但到目前为止,我发现的ASNWER非常复杂 我在PHP中使用它(因此就是这个例子!),如果这是最好的方法,我很高兴将PHP集成到解决方案中 使用MySQL正则表达式-可以匹配内容,但不能替换-例如: 选择“APKHDP”REGEXP(“[PHP]”) 返

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

我想搜索所有包含PHP字符的字符串(按该顺序)。所以我搜索PHP,它返回上面的字符串。或者我搜索HPP,它什么也不返回

有没有一个简单的解决方案可以做到这一点,也许是使用正则表达式?听起来很简单。但到目前为止,我发现的ASNWER非常复杂


我在PHP中使用它(因此就是这个例子!),如果这是最好的方法,我很高兴将PHP集成到解决方案中

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

选择“APKHDP”REGEXP(“[PHP]”)

返回“1”(即regexp与字符串匹配)

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

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

SELECT field FROM TABLE WHERE field REGEXP(match1) AND field REGEXP(match2)..etc
无论你觉得哪个最简单

链接:


.

您不能只使用like select吗?也许我遗漏了一些东西:从myTable中选择*,其中myField类似于“%PHP%”。据我所知,这不是一个与PHP相关的问题。如果您有随机字段内容,并且只想显示与特定字符串匹配的行,请使用:SELECT*FROM table WHERE field,如“%PHP%”;似乎LIKE不适合这个问题,因为他们希望匹配一个模式,而不是固定字符串或部分字符串。谢谢Codecraft,是的LIKE不适合我,因为它不匹配上面的示例字符串。除非有另一种使用它的方法,我不知道?我需要按顺序匹配字符,而不仅仅是字符串本身。xdazz,你是明星。非常感谢你。刚刚用我的REGEX备忘表检查了一下格式,现在感觉非常好。又好又简单。这正是我想要的。我最初是按照这些思路思考的。我想它会起作用的,尽管有点凌乱。尽管如此,还是要感谢你的回应。有解决方案总比没有解决方案好!不幸的是,这将返回精确的字符串。像我一样。
SELECT * 
FROM  `COLUMNS` 
WHERE  `TABLE_NAME` 
REGEXP  'APKHDP'
SELECT * FROM table WHERE text_field REGEXP '.*P.*H.*P.*'