新しいMySQLインスタンスでmin_word_lengthを2または3に設定するかどうかを判断しようとしているので、列の2文字の単語数を数えればわかりますそれは正しい答えの指標を与えるでしょう。MySQL - min_word_length 2または3 - カウントが必要
SQLクエリーを使用して、1つの列内の2文字の単語を数えることは可能ですか?
新しいMySQLインスタンスでmin_word_lengthを2または3に設定するかどうかを判断しようとしているので、列の2文字の単語数を数えればわかりますそれは正しい答えの指標を与えるでしょう。MySQL - min_word_length 2または3 - カウントが必要
SQLクエリーを使用して、1つの列内の2文字の単語を数えることは可能ですか?
LEN()関数は、テキストフィールドの値の長さを返します。
SELECT LEN(column_name) FROM table_name
COUNT(*)関数は、テーブル内のレコード数を返します。
SELECT COUNT(column_name) FROM table_name
WHERE LEN(column_name)=2
UPDATE:
SELECT COUNT(column_name) FROM table_name
だからあなたのクエリは、このようなものでなければなりません
申し訳ありませんが、私はあなたを誤解したと思います。あなたが望む場合、私はあなたがしたいことをするための機能を構築していないのではないかと恐れています。だからあなたは自分で機能を作らなければならない。このような何か作業をする必要があります:あなたがあなた自身でそれをテストする必要がありますので
CREATE FUNCTION [dbo].[WordCount] (@InputString VARCHAR(4000))
RETURNS INT
AS
BEGIN
DECLARE @Index INT
DECLARE @Char CHAR(1)
DECLARE @PrevChar CHAR(1)
DECLARE @WordCount INT
DECLARE @CharCount INT
SET @Index = 1
SET @WordCount = 0
WHILE @Index <= LEN(@InputString)
BEGIN
SET @Char = SUBSTRING(@InputString, @Index, 1)
SET @CharCount = @CharCount + 1
SET @PrevChar = CASE WHEN @Index = 1 THEN ' '
ELSE SUBSTRING(@InputString, @Index - 1, 1)
END
IF @PrevChar = ' '
SET @CharCount = 1
END
IF @Char = ' ' AND @CharCount < 3 AND @CharCount > 1
SET @WordCount = @WordCount + 1
SET @Index = @Index + 1
END
RETURN @WordCount
END
は今、私はそれをテストしていませんが、それは動作するはずです。選択した文字列の2文字すべての単語が返されます。 3文字の単語を取得するには
IF @Char = ' ' AND @CharCount < 4 AND @CharCount > 2
私はこれが役に立ちそうです。
テストが、私は思うが、あなたは、2文字の単語が行にある場合、それは一列のみではなく、何回を数えるかもしれないと、
SELECT SUM(
CASE WHEN yourColumn REGEXP '[[:<:]][a-zA-Z]{2}[[:>:]]'
THEN 1
ELSE 0 END
) AS matches
FROM ...
を試みることができるわけではありません。
更新:私が思ったようにテストされて動作しますので、この回答を無視してください。
フルテキスト検索です。だから、彼はおそらく "foo ba bar fo foooooo"のような内容の列に2文字の単語を数えたいと思っています。 – fancyPants
@tombom正確に - 私は列の中にいくつかの2文字の単語を知っている必要があります、全体としてcolではありません - 時間を取るために感謝tho –