SQL中,简单的select语句,在where部分有个条件需要在一段文字中提取一个词,怎么表示?

select table1.A,table1.B from table1 where table1.C='类型X' and table1.D='*张三*';
这是该条语句,在实际原始数据中按照同样思路筛选是有内容的,但是在sql中查询结果是空的。
主要的想法就是在一个table1里,
1.按照字段C为类型X(文本),
2.字段D为原始数据中备注说明项(文本),需要找到备注中有提到‘张三’这个姓名,
这两个条件下的数据。请问写的有什么问题?实在是刚开始学习,所以不明白哪里出的问题
最新回答
柠萌妹子

2024-11-25 12:47:39

select table1.A,table1.B from table1 where table1.C='类型X' and INSTR(table1.D,'张三', 1, 1);

INSTR(string,subString,position,ocurrence)查找字符串位置
string:源字符串
subString:要查找的子字符串
position:查找的开始位置
ocurrence:源字符串中第几次出现的子字符串
你随我身却伴他心

2024-11-25 19:28:55

什么数据库,模糊查询一般用 %

然后用like

select table1.A,table1.B from table1 where table1.C='类型X' and table1.D like '%张三%'
追问
谢谢,那如果最后like后面需要改成两个词呢?
也就是从一句话中提取两个词作为条件。
比如含张三,不含李四之类的。