我有以下表格:
汽车
自行车
我需要在我的mysql数据库中使用这个表的中央索引表,并为它们提供唯一的id。像这样:
项
可以说,items-table中的id与相应表中的id相同:
项
id | table_name
1 | cars
2 | cars
3 | bicycles
4 | cars
汽车
id | name | color
1 | Peugeot | red
2 | BMW | green
4 | Nissan | blue
自行车
id | name | number_of_gearshift
3 | Stevens | 24
我的问题 - 以下情况: 我有一个项目的ID(例如XXX)。现在我想通过一个查询获取此项的数据。像这样的东西(我知道,这不会起作用):
SELECT table2.*
FROM (SELECT table_name FROM items WHERE id = XXX) AS table2
有可能吗?
答案 0 :(得分:1)
使用可以使用动态sql查询来实现此目的。
set @query = null;
set @id = 3;/*change according to requirement*/
SET @tn := (select `table_name` from items where id = @id);
set @query = concat('select * from ',@tn,' where id = ',@id);
prepare stmt from @query;
execute stmt;
deallocate prepare stmt;
根据您的要求更改@id
的值。