mysql,遍历列名称
我想从MySQL表中获取所有列名,循环访问每个列名,然后使用这些列名作为variables运行存储过程。 一些事情的影响:
colnames = get column names from table for each colname if something changed then do something else do something else
它看起来像SHOW COLUMNS FROM myTable
会给我的列名,但我怎么会得到一个循环的列名?
我真的想在使用本机SQL的存储过程中运行所有这些。 由于我仍然在学习MySQL的复杂性,这对我的项目确实有帮助。 谢谢你的帮助。
我想你想要这样的东西:
DECLARE col_names CURSOR FOR SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'tbl_name' ORDER BY ordinal_position; select FOUND_ROWS() into num_rows; SET i = 1; the_loop: LOOP IF i > num_rows THEN CLOSE col_names; LEAVE the_loop; END IF; FETCH col_names INTO col_name; //do whatever else you need to do with the col name SET i = i + 1; END LOOP the_loop;
您可以针对information_schema编写查询以获取列名称:
SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'tbl_name' ORDER BY ordinal_position
列名就像表中的数据一样返回。