一个多表联合查询引发的思考 (2)

这sql在Oracle中跑起来,没有任何问题。但是朋友拿去改造后在mysql中运行,出现的查询结果依旧不正常。排查了很长一段时间,才找到原因:在mysql中 '%' || 'S001' || '%' 显示打印为:1. 正确的方式是使用concat函数。所以如果你在mysql中运行,需要这样构造sql.

select c.name, b.id from t_table_a a inner join t_table_b b on a.system_id = b.system_id inner join t_table_c c on c.role_list like concat('%', b.role_id, '%') where a.system_id = 123;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwgffy.html