0


我想在我的表中获取 auto_increment 列的值(示例)。然而,问题是我没有 auto_increment 字段的名称。我目前正在使用以下查询来确定字段的名称:

SELECT column_name FROM information_schema.columns WHERE table_name = 'example' AND extra = 'auto_increment' LIMIT 1;

我现在想将此查询的结果作为“字符串”传递给我的实际查询,并获取值。如果我想一次性完成,我该怎么做,因为下面的查询应该给我所有使用的 auto_increment 值,只产生上面的结果 - 即 auto_increment 列名。

SELECT (
   SELECT column_name
   FROM information_schema.columns
   WHERE table_name =  'example'
   AND extra =  'auto_increment'
   LIMIT 1
) AS pri
FROM example 

任何想法将不胜感激:)
许多问候,

安德烈亚斯

4

1 回答 1

0

这是一个如何使用prepareand执行此操作的示例execute

SELECT @s := concat('select `', column_name, '` from example e')
FROM information_schema.columns
WHERE table_name =  'example' AND extra =  'auto_increment'
LIMIT 1

prepare stmt from @s;
execute stmt;
deallocate prepare stmt;
于 2013-07-22T01:28:08.750 回答