MySQL / SQL我可以在表头下返回一些非表数据吗?

时间:2018-04-19 07:36:29

标签: mysql sql

我正在尝试编写一个过程或函数,它可以返回所有带有一行数据的表头,作为下面的应用程序指令 - 这些指令与表中的实际字段不是相同的数据类型。

E.g。

MyTable的:

| pk | fName | lName | comment |

我跑了

SELECT * FROM MyTable WHERE PK = 0;

这将返回ADODB.RecordSet中的所有标题(由于没有PK而没有存在0的行),我可以在其中提取字段数据类型,字符限制等。

  • 我想在每个字段中强制返回(如果可能的话)TEXT,以便输出包含每种类型列的自定义标识符:

    | pk | fName | lName | comment |
      EX     UQ      UQ      OPT
    

到目前为止,我所提出的只是查询数据库两次,一个用于表,另一个用于我的自定义条目,这些条目仅以逗号分隔列表的形式返回。

CREATE PROCEDURE `definition` (tbl VARCHAR(256))
BEGIN

IF tbl = 'MyTable' THEN
    SELECT * FROM `MyTable` WHERE `pk` = 0;
ELSEIF tbl = 'MyTableId' THEN
    SELECT `id` FROM `tableId` WHERE `table` = tbl;
END IF;

END

这很有效,但很麻烦。我需要一个单独的表,只是为了ID,我真的想保留存储过程中的定义 - 像这样:

IF tbl = 'MyTable' THEN
    SELECT `pk`, `fName`, `lName`, `comment` FROM `MyTable` WHERE `pk` = 0
        VALUES 'EX', 'UQ', 'UQ', 'OPT';

显然这不起作用,甚至不确定是否可行,因为EX值不是INT列所期望的pk

这可能吗?!

修改

我知道我可以执行SELECT 'Hey' FROM tbl;这样的内容,但不确定在特定标题下包含此内容的链接。

1 个答案:

答案 0 :(得分:0)

我正在回答我自己的答案,其他人有机会寻找同样的想法 - 我设法让它在一个查询中工作......

import { Ionicons } from "react-native-vector-icons"; .............. ............. .............. const TabsBar = TabNavigator( { Home: {screen: HomeScreen}, Profile: {screen: ProfileScreen}, }, { navigationOptions: ({ navigation }) => ({ tabBarIcon: ({ focused, tintColor }) => { const { routeName } = navigation.state; let iconName; if (routeName === 'Home') { iconName = 'search'; } else if (routeName === 'Profile') { iconName = 'contact'; } return <Ionicons name={iconName} size={25} color={tintColor} />; }, }), tabBarOptions: { activeTintColor: '#222222', inactiveTintColor: '#222222', }, tabBarComponent: TabBarBottom, tabBarPosition: 'bottom', animationEnabled: false, swipeEnabled: false, initialRouteName: 'Home' } );

在应用程序方面,我所要做的就是从headers.count获取所有常规信息 - 1然后分割()逗号上的最后一个字段名称。我也做检查;如果split split.count不等于headers.count-1则会出现问题,以防表格稍后更改。

这意味着我可以将我对许多表信息的请求连接到一个衬里,并在同一行的存储过程中拥有所有“自定义”信息。为了扩展,我实际上可以指定对齐的表头而不是*:

SELECT *, 'EX,UQ,UQ,OPT' FROM MyTable WHERE PK = 0;