我有以下表格:
cars
bicycles
我需要在我的 mysql 数据库中建立该表的中央索引表以及它们的唯一 ID。像这样的东西:
items
可以说,items-table 中的 id 与相应表中的 id 相同:
items
id | table_name
1 | cars
2 | cars
3 | bicycles
4 | cars
cars
id | name | color
1 | Peugeot | red
2 | BMW | green
4 | Nissan | blue
bicycles
id | name | number_of_gearshift
3 | Stevens | 24
我的问题-以下情况:
我有一个项目的 ID(例如 XXX)。现在我想通过一次查询来获取该项目的数据。像这样的东西(我知道,这是行不通的):
SELECT table2.*
FROM (SELECT table_name FROM items WHERE id = XXX) AS table2
是否可以?
使用时可以使用动态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
根据您的要求。
SQL小提琴
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)