我需要计算具有多行的列值中特定字符的出现次数。目前我使用substr_count
函数在php中执行此操作。这并不理想,因为ORDER BY
中我无法SQL
这个值。我目前正在做的一个非常基本的例子。
$sql = SELECT * FROM myTable WHERE ID IN(1,3,7,12,18......)
// loop though results from PDO query above
foreach($results as $key => $val){
print(substr_count($val['col3'], '|')); // prints number of occurances of |
}
简单地说,有没有办法在一列中返回|
的出现次数?
答案 0 :(得分:2)
使用replace
将|
替换为''
。然后取原始列和修改列的长度之差来获得|
次出现次数。
select length(colname)-length(replace(colname,'|','')) as no_of_|
from yourtable