首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有任何方法来检查在mysql中是否有我想要的字段名的表?

问有没有任何方法来检查在mysql中是否有我想要的字段名的表?
EN

Stack Overflow用户
提问于 2018-12-04 12:46:57
回答 1查看 93关注 0票数 2
  1. 我有大约200个字可用作字段名。
  2. 如果找到一个将这些单词作为字段名的表,则不需要创建新表。
  3. 但是,如果找不到把这些字作为字段名的talbe,我必须创建一个新表。

请帮助我找到检查表中是否存在这些字作为字段名的方法。

我在这里找到下面的代码

代码语言:javascript
复制
SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME 
IN ('lNum','rNum', 'tTime') AND TABLE_SCHEMA='summary';

但是这个密码帮不了我,因为它符合名单中的一个。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-05 08:23:03

这并不能直接回答你的问题,但太长了,不能发表评论。

通常,这种问题是通过单独的表来解决的,一个表引用要保存的属性,另一个表保存值。通过这种方式,您可以动态地向列表添加和删除属性。当然,拥有200个表可能会导致巨大的表,但是您仍然可以将它们分离成不同的表,这些表可以在第三个表中引用。

举个例子:

引用属性的表(id对应于第二个表中的类型):

代码语言:javascript
复制
----------------------------
| id | name  | description |
----------------------------
| 0  | prop0 | bla         |
| 1  | prop1 | blabla      |
| 2  | prop2 | blablabla   |
----------------------------

存储值的表:

代码语言:javascript
复制
---------------------------------------------------
| id | type | test | value                        |
---------------------------------------------------
| 0  | 1    | 0    | one prop1 val for test 0     |
| 1  | 2    | 0    | one prop2 val for test 0     |
| 2  | 2    | 1    | another prop2 val for test 1 |
---------------------------------------------------

另一个在不同表中分离集合的示例

引用其他表的表:

代码语言:javascript
复制
-----------------------------------------------
| id | name   | propertiesTable | description |
-----------------------------------------------
| 0  | table0 | prop0           | bla         |
| 1  | table1 | prop1           | blabla      |
| 2  | table2 | prop2           | blablabla   |
-----------------------------------------------

与第一行相对应的表:

代码语言:javascript
复制
prop0:                          table0
----------------------------    ---------------------------------
| id | name  | description |    | id | type | value             |
----------------------------    ---------------------------------
| 0  | prop0 | bla         |    | 0  | 1    | one prop1 val     |
| 1  | prop1 | blabla      |    | 1  | 2    | one prop2 val     |
| 2  | prop2 | blablabla   |    | 2  | 2    | another prop2 val |
----------------------------    ---------------------------------

当然,如果您已经用未引用的表编写了大量代码,则可以使用Raymond的注释解决方案,但这将通过添加200个条件导致大量请求。

在2之间的另一种解决方案是引用另一个表中的所有表,如我的第二个示例中的那样,其中的字段按照所有列的字母顺序存储级联,类似于column1;column2;column3。通过这种方式,您可以在一个简短的请求中进行测试,如果有一个具有所有字段的表,则可以进行比较。

与这个概念的其他组合是可能的,可以更好地适合你的目的,你可以适应它,如果你了解一般的方法。

祝好运!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53613372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档