先介绍一个简单的关键字(concatenate).将不同的字段的所对应的值可以拼接在一起。简单的先用一个简单的示例来演示一下。
首先我们可以看看一个实验的表格:
上面的表格中有一些数据。例如我们想将id和描述信息放在同一个表格中,此时我们就可以使用concatenate这个关键字来将两个字段进行联合起来:
从上图可以看出,我们在使用concat的使用,可以将任意的字段拼接在一起。中间可以加上我们想要填充的内容。在上面的语句中,我添加了一个“:”来分割id和desc信息。
有时候我们对于新生成的一个字段可以给他设置一个别名,就像上面的 concat (prod_id,':',prod_desc) ,这样看起来并不是很友好。我们现在可以使用as关键字来进行对检索出来的内容进行重命名。直接看结果:
从上图我们可以看出,将 concat (prod_id,':',prod_desc) 的结果改为一个新的名字, prod_total_desc .
mysql的in条件查询,是括号里拼接逗号相隔的字串,这个字长里的个数还有限制,网上的说法是1000个,为了避免超出该范围,可专门封装一个方法 1.使用exists写法替代in写法,exists写法是使用条件查询替代in写法里的一长串字串,这个有时候没法使用,比如使用第三方接口查学校一年级2千个学生的考试成绩,你只知道这些学生的id,没有更多的关联条件 2.使用or的写法,将in条件过长的字串拆开,mysql支持以下写法: 方法封装: 测试效果:mysql不能直接运行动态sql语句的,但是可以写在存储过程中,然后调用过程执行,具体如下:
(1)定义存储过程,示例CREATE DEFINER=`root`@`localhost` PROCEDURE `query_extra_table(table_index varchar(255) );
BEGIN
SET @sql = concat("select * from tbl_order_", table_index)
PREPARE stmt FROM @sql
EXECUTE stmt
END
(2)调用存储过程:
CALL query_extra_table('483')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)