有一个下图这样的表,KEY字段的人名数量不固定,那么要如何才能查询出包含周杰的记录?
下面的表只是个例子,真正用的时候名字可能会有很多。
上面的所有回答都不正确,当字段有多个名字,周杰在是后时是查不到的。
正确的sql(MYSQL):
WHERE CONCAT(key,',') like '%周杰,' or CONCAT(key,',') like '%周杰,'
-- 注意逗号的半全角,你可根据实际情况调整。如果确定只有一种加一个条件就行了。
like '周杰,%'
WHERE key like '%周杰,%' OR key = '周杰'
如果'李周杰'也不要的话,这样写where key= '周杰' or key like '周杰,%' or key like '%,周杰'or key like '%,周杰,%'
思路很多呀。看你如何使用 % 了
使用CHARINDEX函数就行了。
key like '%周杰' or key like '%周杰,%'
直接 select * from 表名 where key like '%周杰%';
入库的时候key值前后加逗号,查询的时候关键字前后加逗号做分隔,要不直接模糊查找会一起找出来
key like '%,周杰,%'
select * from 表名 where ‘,’+key+‘,’ like '%,周杰,%';