在日常编写SQL中,使用变量来灵活的构建执行的SQL语句是比较常见的。就像在编程中使用变量、函数参数等是一样的道理。这里介绍一种使用MySQL的JSON特性实现在SQL中拼接一个数组的效果。本文介绍使用JSON函数(JSON_ARRAY、JSON_SEARCH)、以及FIND_IN_SET如何简单的实现带有数据组变量的SQL拼接与执行。使用该方法,则无需使用CONCAT函数拼接SQL,再使用PREPARE/EXECUTE语法执行,所以会更加简洁,可读性更强。具体的,例如需要再查询结果中找到u_name在数组@u_list_j中的记录,那么使用JSON方式可以按照如下模式实现:SET @u_list_j = JSON_ARRAY('zhou','wu','zheng','wang','zhuge');
SELECT
id,u_name
FROM
t_01
WHERE
JSON_SEARCH(@u_list_j,'one',t_01.u_name);另一种较为常见的方法是使用FIND_IN_SET函数。其使用方法如下:set @u_list_s = 'zhou,wu,zheng,wang,zhuge';
SELECT
u_name
FROM
t_01
WHERE
FIND_IN_SET(t_01.u_name,@u
...
继续阅读
(93)