问题:在进行人名搜索时,因为该字段是演员字段,多个演员以分号;进行分隔,在进行模糊查询时会出现以下几种情况:
sql语句:
select actor from assetTable where actor like '%成龙%';
查询结果:
① 成龙;景甜
② 景甜;成龙
③ 周杰伦;成龙;景甜
④ 成龙
⑤ 李成龙此时发现第 ⑤ 个不是我们想要查询出来的结果,如果修改模糊查询:
select actor from assetTable where actor like '%;成龙;%';
又会出现 ① ② ④ 查询不到的结果。
解决方法:
使用MySQL的 CONCAT函数 让字段左右两边也增加分号;后,再与带分号的模糊查询进行比较。
sql语句:
select CONCAT(';',actor,';') from assetTable where actor like '%;成龙;%';
相当于对以下结果进行模糊查询:
① ;成龙;景甜;
② ;景甜;成龙;
③ ;周杰伦;成龙;景甜;
④ ;成龙;
⑤ ;李成龙;
版权声明:本文为qq_37922264原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。