Получить количество строк таблицы MYSQL, где каждая строка содержит одну и ту же дату
У меня есть таблица MYSQL под названием " LCI
"В котором у меня есть текущие столбцы и типы данных соответственно, как показано на рисунке.
Java-приложение считывает два пользовательских ввода: имя пользователя и пользовательский интерфейс даты, где пользователь должен указать имя пользователя и дату. и сравнить эти два с колонками SUB_ID
и L_DATE
соответственно. Если они совпадают с определенной записью, эта запись должна быть извлечена в табличную модель в приложении Java. В настоящее время это происходит, если существует только одна запись, которая удовлетворяет обоим условиям. Если их много, она извлекает только запись последних дат
Что мне на самом деле нужно, так это проверить, сколько существует записей, соответствующих имени пользователя (SUB_ID
) и дата (L_DATE
). Если существует более одной записи. Все они должны быть восстановлены.
Давайте представим, если в таблице сохранено 4 записи на 2018-03-20 (L_DATE
) соответственно под SUB_ID
s E/14/
, E/1
, E/5
, E/14
, Когда пользователь задает имя пользователя E/14 и дату как 2018-03-20, тогда модель таблицы должна показать две записи, сохраненные под SUB_ID
E/14
,
Как я вижу, мне нужно получить количество строк таблицы MYSQL, где username = SUB_ID и date= L_DATE. Затем я могу поместить число строк в цикл, чтобы векторы могли извлекать эти записи.
Я отчаянно ищу ответ. Кто-нибудь, пожалуйста, помогите мне выяснить, как получить количество строк таблицы 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)
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= ?