Mysql クエリ文字列内の特定の文字列の出現数

1. 単一文字の出現数を確認する

たとえば、how do you do文字列内の出現数を確認したいとしますd

一見するとややこしいですが、まずmysqlには文字の出現数を直接カウントする機能がないので、以下のような方法をとります実際には、出現する文字列を空の文字列に置き換えます。元のデータから置換後の長さを引いたものが出現回数となり、文字の長さは 1 となります。

select LENGTH('how do you do') - 
LENGTH( REPLACE ( 'how do you do', 'd', '' ))

2. 複数の文字の出現数を確認する

たとえば、how do you do文字列内の出現数を確認したいとしますdo

SELECT
	(
		LENGTH( 'how do you do' ) - LENGTH(
		REPLACE ( 'how do you do', 'do', '' ))) / LENGTH(
	'do')

ここで問題ですが、除算すると小数点以下の桁がたくさん出てきますが、次の方法で小数点以下の桁を取り除くことができます。

SELECT TRUNCATE
	((
			LENGTH( 'how do you do' ) - LENGTH(
			REPLACE ( 'how do you do', 'do', '' ))) / LENGTH( 'do' ),
	0)

3. 機能説明

TRUNCATE関数:

  • TRUNCATE 関数の公式の説明は次のとおりです。数値の切り捨てられた値を返します。この関数を使用すると、小数部分を削除して、数値の整数部分だけを残すことができます。
  • 特定の関数の構文は次のとおりです。TRUNCATE(X, D)
  • X は切り取られる数値を表し、D は保持される小数点以下の桁数を表します。D が正の数の場合は小数点以下の桁数が切り取られ、D が負の数の場合は整数の数が切り取られます。
SELECT TRUNCATE(3.1415926535898, 3)
结果为:3.141

長さ関数:

  • 文字列の長さを調べます。文字の長さは 1 です。
  • 文法:LENGTH(字符串)

交換():

  • 指定された文字を目的の文字に置き換えます
  • 文法:replace(A,X,D)
  • A 文字列に表示される X 文字列を D 文字列に置き換えることを示します

おすすめ

転載: blog.csdn.net/weixin_43888891/article/details/130607717