반응형
간단한 쿼리를 보겠습니다.
SELECT myfield
FROM mytable
WHERE criteria
예를 들어 위의 쿼리는 10 행의 결과를 제공합니다. myField
필드는 텍스트 필드입니다.
내 질문은 이것이다 : 위의 쿼리를 변경하고 myField
필드의 총 단어 수를 가져올 수 있습니까?
수정 됨 : 총 단어 수란 모든 행에서 쿼리에서 선택한 모든 필드의 총 단어 수를 의미합니다.
예
+------------------------------+-------+
| sentence | Words |
+------------------------------+-------+
| Hello World | 2 |
| Hello World | 2 |
| Mary had a little lamb | 5 |
| Her fleece was white as snow | 6 |
| Everywhere that mary went | 4 |
| Umm, sheep followed her | 4 |
+------------------------------+-------+
해결 방법
mysql> select * from test;
+----+------------------------------+
| id | sentence |
+----+------------------------------+
| 0 | Hello World |
| 1 | Hello World |
| 2 | Mary had a little lamb |
| 3 | Her fleece was white as snow |
| 4 | Everywhere that mary went |
| 5 | Umm, sheep followed her |
+----+------------------------------+
6 rows in set (0.00 sec)
mysql> SELECT sentence, wordcount(sentence) as "Words" from test;
+------------------------------+-------+
| sentence | Words |
+------------------------------+-------+
| Hello World | 2 |
| Hello World | 2 |
| Mary had a little lamb | 5 |
| Her fleece was white as snow | 6 |
| Everywhere that mary went | 4 |
| Umm, sheep followed her | 4 |
+------------------------------+-------+
6 rows in set (0.02 sec)
함수가 작동하도록하려면 MySQL에서 함수 선언을 실행해야합니다. 다른 쿼리를 실행하는 것과 같습니다.
mysql> DELIMITER $$
mysql> CREATE FUNCTION wordcount(str TEXT)
RETURNS INT
DETERMINISTIC
SQL SECURITY INVOKER
NO SQL
BEGIN
DECLARE wordCnt, idx, maxIdx INT DEFAULT 0;
DECLARE currChar, prevChar BOOL DEFAULT 0;
SET maxIdx=char_length(str);
WHILE idx < maxIdx DO
SET currChar=SUBSTRING(str, idx, 1) RLIKE '[[:alnum:]]';
IF NOT prevChar AND currChar THEN
SET wordCnt=wordCnt+1;
END IF;
SET prevChar=currChar;
SET idx=idx+1;
END WHILE;
RETURN wordCnt;
END
$$
Query OK, 0 rows affected (0.10 sec)
mysql> DELIMITER ;
참조 페이지 https://stackoverflow.com/questions/12156970
반응형
'MySql' 카테고리의 다른 글
MySQL은 datetime 열이 주말 기간 내에 있는지 확인합니다. (0) | 2021.01.31 |
---|---|
MySQL Hibernate-정수 유형에 대한 올바른 매핑을 제공하는 방법은 무엇입니까? (0) | 2021.01.31 |
MySQL CodeIgniter 구성 문자 집합 및 UTF-8 지원 (0) | 2021.01.31 |
MySQL netbeans 6.7을 사용하여 외래 키를 어떻게 정의 할 수 있습니까? (0) | 2021.01.31 |
MySQL How can I use ADO.NET DbProviderFactory with MySQL? (0) | 2021.01.31 |
댓글