mysql - 使用 MySQL 命令行,如何在 Select 语句中仅显示日期或金额(十进制)列?

标签 mysql select sqldatatypes

我是 SQL 的新手,我意识到我还有很多东西要学。我正在将一组 ISAM 文件转换为 MySQL 表。我正在创建的一些表有数百列。为了更轻松地查看我的转换是否正常工作,我想在我的 SELECT 结果中一次只显示一部分列。

例如,我只想查看日期或金额(即小数)。这样可以更轻松地查看这些字段中的值是否正确。

我在 MySQL 命令行下工作,如果可以避免,我宁愿不指定一长列列名。有没有办法让我的 Select 语句只显示我感兴趣的列类型?


(添加于 2016 年 5 月 12 日) 我使用了 Uueerdo 语法的变体来创建 View :

create view dates_view as concat('select ', group_concat(column_name), ' ',' from ', table_schema, '.', table_name, ';') from information_schema.columns where table_name = 'binders_tbl' 和 data_type in ('日期');

当我输入 select * from dates_view;我得到这个值:

从 aesdb.binders_tbl 中选择 binder_effectiveDate、binder_expirationDate、binder_submissionCreatedDate、binder_f‌ irstQuotedDate、binder_boundDate、binder_invoicedDate、binder_terminatedDate、binder_‌ cancelledDate;

我试过但找不到将此 View 与“select * from binders_tbl;”一起使用的方法仅显示上述日期字段及其值。

如果有人能指导我找到“连接”或“子查询”解决方案,我将不胜感激。现在,我将坚持根据需要列出所有单独的列。另外,我将学习更多基础和中级 SQL。感谢那些回复的人。


(添加于 2016 年 5 月 20 日) 我找到了解决问题的方法。以防万一它可以帮助其他人:

CREATE VIEW DateCols_View AS SELECT Table1_SelectionCriteriaField, Table1_Date1, Table1_Date2, Table1_Date3 FROM Table1;

SELECT * FROM DateCols_View WHERE Table1_SelectionCriteriaField(符合某些条件);

我的解决方法有2 个缺点第一 是我必须包括我计划稍后使用的任何选择条件字段。但是只要稍加考虑,我就可以为不同的显示创建具有不同列集的多个 View 。这将让我在处理一组记录时只显示我希望看到的那些列。我计划为日期、金额、标志等创建单独的 View 。

另一个缺点是我必须为我计划使用的每个表或联接组合创建一组单独的 View 。

我希望随着我对 SQL 的了解越来越多,我会找到一种方法来概括这种技术(使其更像脚本或宏)并进一步简化它。

最佳答案

不,您必须指定列名。没有用于动态字段包含的语法,但是您可以使用 information_schema(如下所示)来生成查询供您使用。

SELECT CONCAT('SELECT ', GROUP_CONCAT(column_name), ' '
,'FROM `', table_schema, '`.`', table_name, '`;'
FROM information_schema.columns 
WHERE table_schema = 'yourschemaname' 
AND table_name = 'yourtablename' 
AND data_type IN ('timestamp', 'date'[, etc....])
;

关于mysql - 使用 MySQL 命令行,如何在 Select 语句中仅显示日期或金额(十进制)列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37174746/

相关文章:

postgresql - 从删除子查询返回值中选择

PHP mySQL - 选择未从不同表中使用的唯一值

sql - ORACLE SQL - 创建表时的数据类型无效

php - smarty如何替换现有的字符(php添加)来判断显示图像或显示其他列

mysql - 使用 MySQL,如何迭代更新触发器中的字段以比较更改日志的新旧值?

python - 如何将 HTML 代码插入到表格中

php - 在 2 个不同格式的日期之间搜索

mysql - 如何在MySQL数据库中按域分组并删除两个以上结果

mysql - 在 MySql Decimal 语法中表示最大 1.00

tsql - 从 SQL 存储过程返回 BIT 常量