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')
先介绍一个简单的关键字(concatenate).将不同的字段的所对应的值可以拼接在一起。简单的先用一个简单的示例来演示一下。
首先我们可以看看一个实验的表格:
上面的表格中有一些数据。例如我们想将id和描述信息放在同一个表格中,此时我们就可以使用concatenate这个关键字来将两个字段进行联合起来:
从上图可以看出,我们在使用concat的使用,可以将任意的字段拼接在一起。中间可以加上我们想要填充的内容。在上面的语句中,我添加了一个“:”来分割id和desc信息。
有时候我们对于新生成的一个字段可以给他设置一个别名,就像上面的 concat (prod_id,':',prod_desc) ,这样看起来并不是很友好。我们现在可以使用as关键字来进行对检索出来的内容进行重命名。直接看结果:
从上图我们可以看出,将 concat (prod_id,':',prod_desc) 的结果改为一个新的名字, prod_total_desc .
$num=5//或$num=$_GET['num']从参数获取$sql="select * from table1 limit 0,{$num}"
这样就OK了~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)