嗨,当您输入以下网址(仅用于学习目的)时,我可以看到ID = 1的图像。

因此,我尝试使用此方法来查找数据库中某些表的名称,并且它起作用了。这可以检测是否存在以“ albu”开头的表:


  http://35.227.24.107:5001/d0510b3060/fetch?id=1 AND(从INFORMATION_SCHEMA.TABLES中的TABLE_NAME像“ albu%”中选择COUNT(*))> 0; -


但是如何知道以'albu'开头的特定列是否存在?我已经尝试过了,但是没有用:


  http://35.227.24.107:5001/d0510b3060/fetch?id=1 AND(从INFORMATION_SCHEMA.TABLES中选择COUNT(*),其中TABLE_NAME ='相册'AND column_name像'albu%')> 0; -


请注意:对于我的问题,我知道数据库和表的名称。

最佳答案

如Shadow所评论,您正在寻找MySQL INFORMATION_SCHEMA.COLUMNS table

SELECT COUNT(*)
FROM information_schema.columns
WHERE table_name = 'albums' AND column_name LIKE 'albu%'


注意:您可能还想过滤TABLE_SCHEMA。它需要使用模式和表名来唯一地标识数据库中的表。

08-05 17:28