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。这是一个与你的问题无关的问题,或多或少要求你写一个全新的问题。。。