This question already has answers here:
Is storing a delimited list in a database column really that bad?
(10个答案)
9天前关闭。
我有一张这样的桌子:
我想知道“type”列的每个单元格中有多少个单词。
对我来说,最好的办法是只有单词数与“qta”相同的行。
所以我只想要id为1,2,4的行
原始代码链接:here
表达式
Demo on DB Fiddle:
id | cod |类型| qta
-: | :-- | :---------- | --:
1 | aaa | aaa、bbb、ccc | 3
2 | aaa | ddd | 1
4 | aaa | ggg,hhh | 2号
(10个答案)
9天前关闭。
我有一张这样的桌子:
CREATE TABLE tab1 (
id INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL,
cod TEXT,
type TEXT,
qta INTEGER);
INSERT INTO tab1 (cod, type, qta)
VALUES ('aaa','aaa,bbb,ccc', 3),
('aaa','ddd', 1),
('aaa','eee,fff', 4),
('aaa','ggg,hhh', 2),
('aaa','out', 7),
('aaa','out', 7);
我想知道“type”列的每个单元格中有多少个单词。
对我来说,最好的办法是只有单词数与“qta”相同的行。
所以我只想要id为1,2,4的行
原始代码链接:here
最佳答案
考虑:
select *
from tab1
where char_length(type) - char_length(replace(type, ',', '')) + 1 = qta
表达式
char_length(type) - char_length(replace(type, ',', ''))
给出字符串中逗号的数目。添加1
可以得到字符串中的单词数。Demo on DB Fiddle:
id | cod |类型| qta
-: | :-- | :---------- | --:
1 | aaa | aaa、bbb、ccc | 3
2 | aaa | ddd | 1
4 | aaa | ggg,hhh | 2号
关于mysql - mySql:获取单元格中的单词数(以逗号分隔的字符串)与匹配的单元格具有相同值的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58836191/
10-13 03:19