mySql:获取单元格中的字数(以逗号分隔的字符串)与匹配单元格具有相同值的行

mySql:获取单元格中的字数(以逗号分隔的字符串)与匹配单元格具有相同值的行,mysql,database,string,csv,where-clause,Mysql,Database,String,Csv,Where Clause,我有一张这样的桌子: 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',

我有一张这样的桌子:

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的行

代码的原始链接:

考虑:

select *
from tab1
where char_length(type) - char_length(replace(type, ',', '')) + 1 = qta
表达式
char_length(type)-char_length(replace(type),,,,”)
提供字符串中逗号的数量。将
1
添加到该字符串中,可以获得字符串中的字数

id | cod | type | qta -: | :-- | :---------- | --: 1 | aaa | aaa,bbb,ccc | 3 2 | aaa | ddd | 1 4 | aaa | ggg,hhh | 2 id | cod |类型| qta -: | :-- | :---------- | --: 1 | aaa | aaa、bbb、ccc | 3 2 | aaa | ddd | 1 4 | aaa | ggg,hhh | 2
如果出现“空”项目,如
aaa、bbb、
ddd,
会发生什么情况?理想情况下,你应该正常化…非常感谢。。。如果我需要像这样更新字符串aaa_1,bbb_1,ccc_1“,如果我需要像这样更新字符串aaa_1,bbb_1,ccc_1”@FrancescoG。这是一个与你的问题无关的问题,或多或少要求你写一个全新的问题。。。