【问题标题】:How to selected record from selected column in queries mysql如何从查询mysql中的选定列中选择记录
【发布时间】:2021-01-13 18:01:20
【问题描述】:

这是我的小提琴https://dbfiddle.uk/?rdbms=mysql_5.7&fiddle=5f93901f015e087fb1f8466b7601e0b0

我有 3 张这样的桌子

CREATE TABLE table1 
(
    ID int PRIMARY KEY NOT NULL, 
    endDate datetime
);

INSERT INTO table1 (ID, endDate)
VALUES (1, '2020-02-02');

CREATE TABLE table2 
(
     ID int PRIMARY KEY NOT NULL, 
     end_date datetime
);

INSERT INTO table2 (ID, end_date)
VALUES (1, '2020-03-02');

CREATE TABLE table3 
(
     ID int PRIMARY KEY NOT NULL, 
     EndDate datetime
);

INSERT INTO table3 (ID, EndDate)
VALUES (1, '2019-02-02');

基本上我想在我的数据库中找出所有名称包含此查询的“end”的列

SELECT DISTINCT TABLE_NAME, COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE 'End%';

结果是这样的:

+----------------------------------+--------------+
|            TABLE_NAME            | COLUMN_NAME  |
+----------------------------------+--------------+
| EVENTS                           | ENDS         |
| table1                           | endDate      |
| table2                           | end_date     |
| table3                           | EndDate      |
| events_stages_current            | END_EVENT_ID |
| events_stages_history            | END_EVENT_ID |
| events_stages_history_long       | END_EVENT_ID |
| events_statements_current        | END_EVENT_ID |
| events_statements_history        | END_EVENT_ID |
| events_statements_history_long   | END_EVENT_ID |
| events_transactions_current      | END_EVENT_ID |
| events_transactions_history      | END_EVENT_ID |
| events_transactions_history_long | END_EVENT_ID |
| events_waits_current             | END_EVENT_ID |
| events_waits_history             | END_EVENT_ID |
| events_waits_history_long        | END_EVENT_ID |
+----------------------------------+--------------+

由于在我的数据库中所有名称为“end”的列都是日期时间数据类型,所以我想找出一条记录,年份 = 2020 作为行,所以根据我的小提琴,预期的结果是这样的

预期结果

+------------+--------------+---------------------+
| TABLE_NAME | COLUMNS_NAME |        DATA         |
+------------+--------------+---------------------+
| table1     | endDate      | 2020-02-02 00:00:00 |
| table2     | end_date     | 2020-03-02 00:00:00 |
+------------+--------------+---------------------+

不包括来自table3的数据,因为该数据存在于2019而不是2020的年份

【问题讨论】:

标签: mysql


【解决方案1】:

或者,您可以将搜索模式更改为 `end%date':

SELECT DISTINCT TABLE_NAME, COLUMN_NAME 
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE COLUMN_NAME LIKE 'end%date';

【讨论】:

  • 在我得到这些数据后,我可以得到所有这些列的记录吗?
猜你喜欢
  • 1970-01-01
  • 2012-07-13
  • 2021-05-16
  • 1970-01-01
  • 1970-01-01
  • 2021-12-03
  • 2019-02-28
  • 2015-06-25
  • 1970-01-01
相关资源
最近更新 更多