Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.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 - Fatal编程技术网

Php mysql统计字段中特殊字符的出现次数

Php mysql统计字段中特殊字符的出现次数,php,mysql,Php,Mysql,我想计算@符号在字段中的所有出现次数,最初我认为像“%@%”这样的是可行的方法,但如果该字符在字段中出现多次,则只将其计算为一次 我还可以使用什么其他方法来计算每次发生的次数 谢谢 编辑 对于任何需要它的人,这就是我最终使用的有效方法 $count = 0; $sql = mysql_query("SELECT LENGTH(field_name) - LENGTH(REPLACE(field_name,'@','')) AS 'occurs' FROM table_name WHERE fie

我想计算@符号在字段中的所有出现次数,最初我认为像“%@%”这样的是可行的方法,但如果该字符在字段中出现多次,则只将其计算为一次

我还可以使用什么其他方法来计算每次发生的次数

谢谢

编辑 对于任何需要它的人,这就是我最终使用的有效方法

$count = 0;
$sql = mysql_query("SELECT LENGTH(field_name) - LENGTH(REPLACE(field_name,'@','')) AS 'occurs' FROM table_name WHERE field_name LIKE '%@%'");
while ($data = mysql_fetch_assoc($sql)) {
    $count += $data['occurs'];
}
echo $count;

来源:

您可以通过在php中使用``substr\u count函数来简化此过程。见下文

$message = $row['themessage'];
echo substr_count($message, '@');

这将返回@在数据库的“themessage”字段中出现的次数

计算字符串长度与字符串长度之间的差值,用@替换为“我不明白如何使用它?”?我使用的是php btw.select length('aa@bb@cc@dd')-长度(替换('aa@bb@cc@dd','@',''));我还是不明白,a、b、c和d是什么?只要换一个就行了aa@bb@cc@dd'对于字段名,它基本上是计算字符串的长度-不带'@'的字符串的长度,像这样吗?(“选择长度(字段名称)-长度(替换表名称中的字段名称“@”和“”)
$message = $row['themessage'];
echo substr_count($message, '@');