我有这样一张桌子:
TITLE | DESCRIPTION
------------------------------------------------
test1 | value blah blah value
test2 | value test
test3 | test test test
test4 | valuevaluevaluevaluevalue
Run Code Online (Sandbox Code Playgroud)
我试图弄清楚如何返回每个描述中字符串出现的次数.
所以,如果我想计算'value'出现的次数,sql语句将返回:
TITLE | DESCRIPTION | COUNT
------------------------------------------------------------
test1 | value blah blah value | 2
test2 | value test | 1
test3 | test test test | 0
test4 | valuevaluevaluevaluevalue | 5
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?我根本不想使用php,只是mysql.
我有字符串asdasdwdfef,rgrgtggt,weef
,我希望输出像表格式,如下所示
id decription
1 asdasdwdfef
2 rgrgtggt
3 weef
Run Code Online (Sandbox Code Playgroud)
为此,我在这里创建了一个程序是我的程序
DELIMITER ;;
CREATE Procedure Split(_RowData text, _Delimeter text)
BEGIN
DECLARE _Iterator INT default 1;
DECLARE _FoundIndex INT;
DECLARE _Data varchar(255);
SET _FoundIndex = LOCATE(_Delimeter,_RowData);
DROP TABLE IF EXISTS _RtnValue;
CREATE temporary TABLE _RtnValue(ID INT AUTO_INCREMENT NOT NULL, description text, primary key(ID));
WHILE _FoundIndex > 1 DO
INSERT INTO _RtnValue (description)
SELECT
_Data = LTRIM(RTRIM(SUBSTRING(_RowData, 1, _FoundIndex - 1)));
set _RowData = SUBSTRING(_RowData, _FoundIndex + LENGTH(_Delimeter) / 2, LENGTH(_RowData)); …
Run Code Online (Sandbox Code Playgroud) 总而言之:我需要将几个表格中的数据放在一起,为了不必画一张大桌子,我简化了它们.
我需要在一个查询中这样做,我不能使用PHP或任何其他语言来处理结果.(如果我可以简单地解决这个问题,我会使用PHP)
如果我有一个将t1行连接到t2的链接表,但不幸的是我没有,也不能引入一个,这不会是一个问题.
User table: (alias t1)
user(varchar 150),resources(varchar 250)
+-------+-------+
| user1 | 1;2;4 |
+-------+-------+
| user2 | 2 |
+-------+-------+
| user3 | 3;4 |
+-------+-------+
Resources table: (alias t2)
id(int 11 AI), data(text)
+---+-------+
| 1 | data1 |
+---+-------+
| 2 | data2 |
+---+-------+
| 3 | data3 |
+---+-------+
| 4 | data4 |
+---+-------+
| 5 | data5 |
+---+-------+
Run Code Online (Sandbox Code Playgroud)
多个用户可以连接到相同的资源,用户可以访问一个或多个资源.
我希望结果接近:
user,data
+-------+-------+
| user1 | data1 |
+-------+-------+
| user1 …
Run Code Online (Sandbox Code Playgroud) 目标:以最快的方式计算变量中不同字符的数量。
DECLARE @String1 NVARCHAR(4000) = N'1A^' ; --> output = 3
DECLARE @String2 NVARCHAR(4000) = N'11' ; --> output = 1
DECLARE @String3 NVARCHAR(4000) = N'*' ; --> output = 1
DECLARE @String4 NVARCHAR(4000) = N'*A-zz' ; --> output = 4
Run Code Online (Sandbox Code Playgroud)
我发现了有关一列中不同字符,按字符分组等的一些帖子,但在这种情况下没有一个。