获取每行包含相同日期的 MYSQL 表的行数
Posted
技术标签:
【中文标题】获取每行包含相同日期的 MYSQL 表的行数【英文标题】:Get the row count of a MYSQL table where each row contains same date 【发布时间】:2018-08-28 19:41:58 【问题描述】:我有一个名为“LCI
”的 mysql 表,其中分别有流动的列和数据类型as shown in the picture。
Java 应用程序读取两个用户输入用户名和日期UI where user have to give User name and a date.,并将这两个分别与列SUB_ID
和L_DATE
进行比较。如果它们都与某个记录匹配,则应检索该记录到 java 应用程序中的表模型上。目前,如果只存在一个满足这两个条件的记录,则会发生这种情况。如果有很多,它只检索最新日期的记录
我真正需要的是检查有多少记录与用户名(SUB_ID
)和日期(L_DATE
)相符。如果有多个记录。应该检索所有记录。
假设2018-03-20(L_DATE
)的表中保存了4条记录,分别在SUB_ID
s下E/14/
,E/1
,E/5
,E/14
,当用户输入用户名E/14,日期为2018-03-20,则表模型应显示保存在SUB_ID
E/14
下的两条记录。
如我所见,我需要获取用户名 = SUB_ID 和日期 = L_DATE 的 MYSQL 表的行数。然后我可以将行数放入循环中,以便向量可以检索这些记录。
我正在拼命寻找答案。请有人帮我弄清楚如何获取我存储了日期的 MYSQL 表的行数,并且该日期与用户输入相符。谢谢大家。
下面是MYSQL CLI中播种的表结构
mysql> desc lci;
+----------+--------------+------+-----+------------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+------------+-------+
| L_ID | varchar(30) | NO | PRI | | |
| L_DATE | date | NO | | 0000-00-00 | |
| HEADING | varchar(300) | NO | | | |
| SEC_ID | varchar(30) | NO | | | |
| SUB_ID | varchar(30) | YES | | NULL | |
| I_ID | varchar(30) | YES | | NULL | |
| NEW_INS | varchar(100) | YES | | NULL | |
| SEND_ID | varchar(30) | YES | | NULL | |
| NEW_SEND | varchar(100) | YES | | NULL | |
| R_DATE | datetime | YES | | NULL | |
| L_DATE_ | time | YES | | NULL | |
+----------+--------------+------+-----+------------+-------+
11 rows in set (0.02 sec)
下面是我输入表格LCI
的数据
mysql> select * from lci;
+-------+------------+---------------------+-----------------------+--------+------+---------+---------+----------+---------------------+----------+
| L_ID | L_DATE | HEADING | SEC_ID | SUB_ID | I_ID | NEW_INS | SEND_ID | NEW_SEND | R_DATE | L_DATE_ |
+-------+------------+---------------------+-----------------------+--------+------+---------+---------+----------+---------------------+----------+
| 1 | 2017-12-28 | qwerty test | Development Section | E/14 | SPDA | | Item 1 | | 2017-12-19 00:00:00 | NULL |
| 10630 | 2018-01-02 | test | Development Section | DEV1 | CCO | | Item 4 | | 2018-01-04 00:00:00 | NULL |
| 12 | 2018-01-02 | test | Development Section | E5 | CSO | | Item 4 | | 2018-01-04 10:59:12 | NULL |
| 14 | 2018-01-04 | Testing | Establishment Section | E/14 | SPDA | | Item 2 | | 2018-01-17 10:54:57 | 10:54:32 |
| 15 | 2018-01-04 | Testing | Establishment Section | E/14 | CSO | | Item 3 | | 2018-01-08 10:54:57 | 10:54:32 |
| 2 | 2018-01-03 | test | Development Section | E14 | PSC | | Item 2 | | 2018-01-05 10:59:12 | NULL |
| 3 | 2018-01-01 | test | Establishment Section | E5 | CSO | | Item 2 | | 2018-01-04 11:35:02 | NULL |
| 34 | 2018-01-15 | 2018 action plan | Development Section | E3 | PSC | | Item 1 | | 2018-01-15 15:49:38 | NULL |
| 4 | 2018-01-02 | test | Development Section | DEV1 | CCO | | Item 4 | | 2018-01-04 00:00:00 | NULL |
| 5 | 2018-01-02 | test | Development Section | DEV1 | CCO | | Item 4 | | 2018-01-04 00:00:00 | NULL |
| 6 | 2018-01-03 | you can do this | Establishment Section | E14 | CSO | | Item 1 | | 2018-01-10 12:57:04 | NULL |
| 678 | 2018-03-07 | qwerty | Establishment Section | E/1 | CSO | | Item 1 | | 2018-03-06 12:28:37 | 12:28:24 |
| 679 | 2018-03-07 | qwerty | Establishment Section | E/14 | CSO | | Item 1 | | 2018-03-06 12:28:37 | 12:28:24 |
| 7 | 2018-01-04 | yes you can do this | Establishment Section | E/14 | CSO | | Item 1 | | 2018-01-09 14:10:56 | 14:10:36 |
+-------+------------+---------------------+-----------------------+--------+------+---------+---------+----------+---------------------+----------+
14 rows in set (0.00 sec)
【问题讨论】:
这不是一个完整的问题,因为我们看不到您的数据,也看不到您的表结构。请在您的问题中包含此信息。 感谢您的指正。我添加了它们。 我希望 SO 以某种方式强迫人们提供 DDL,或者至少是一个 sqlfiddle 【参考方案1】:您不需要从数据库中获取记录数来填写您的向量 您可以使用返回数据集的大小。
您仍然可以通过此查询获得记录数:
select count(*) from LCI where username = ? and date= ?
或者
如果您想要记录及其计数,请使用此方法,但这不是正确的方法:
select * , (select count(*) from LCI where username = ? and date= ? ) as thecount
from LCI
where username = ? and date= ?
【讨论】:
谢谢 Mohamed Adly,让我试试。 :) 再次感谢。以上是关于获取每行包含相同日期的 MYSQL 表的行数的主要内容,如果未能解决你的问题,请参考以下文章