0

我有 7 行的表;我想要一个查询,它将返回第二个查询中显示的值,使用表中的使用总行数,而不使用表名。

CREATE TABLE IF NOT EXISTS `graph_owner` (
  `owner_id` int(5) NOT NULL AUTO_INCREMENT,
  `owner_name` varchar(256) COLLATE utf8_unicode_ci NOT NULL,

  PRIMARY KEY (`owner_id`)
 
);
INSERT INTO `graph_owner` (`owner_id`, `owner_name`) VALUES
(1, 'test1'),
(2, 'test2'),
(3, 'test3'),
(4, 'test4'),
(5, 'test5'),
(6, 'test6'),
(7, 'test6');


SELECT *
FROM (
    SELECT 1 AS id
    UNION SELECT 2
    UNION SELECT 3
    UNION SELECT 4
    UNION SELECT 5
    UNION SELECT 6
    UNION SELECT 7
) AS t

SQL小提琴

4

2 回答 2

0

我将假设您真的不打算在不使用表名的情况下这样做,因为即使您知道这是不可能的。因此,我认为您的意思是您不想选择列的内容。你可以给你的行编号:

select `graph_owner`.*,
(@rowNumber := @rowNumber + 1) rowNumber
from `graph_owner`, (select @rowNumber := 0) r

如果您只想要没有表格内容的数字:

select (@rowNumber := @rowNumber + 1) rowNumber
from `graph_owner`, (select @rowNumber := 0) r;

这是一个更新的小提琴,我将主键更改为不连续:http ://sqlfiddle.com/#!2/703fe/4

于 2013-07-20T21:00:08.717 回答
0
select owner_id from graph_owner order by owner_1d
于 2013-07-20T11:26:39.693 回答