Проверка «Пустая ли таблица?» PDO
@Alex Вы уверены что правильно понимаете, что такое PDO? У меня складывается впечатление, что не совсем.
20 мар 2019 в 7:10
@Ипатьев видимо я подумал, что автор хочет использовать подготовленное выражение
20 мар 2019 в 8:18
Любителям закрывать вопросы. Единственной причиной закрыть этот вопрос может являться уже существовующий подобный вопрос с ответом. Никаких других причин закрывать этот вопрос нет. Рекомендую перечитать правила сайта.
20 мар 2019 в 8:27
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
$sql = 'SELECT id FROM table LIMIT 1'; $result = $pdo->query($sql); if ( !$result->fetch() ) < // Пустая таблица >// Либо так if ($result->rowCount() == 0) < // Пустая таблица >
Отслеживать
ответ дан 20 мар 2019 в 1:52
9,194 4 4 золотых знака 24 24 серебряных знака 47 47 бронзовых знаков
20 мар 2019 в 7:09
а rowCount — бессмысленная, а, главное, и не всегда доступная опция. так что только первый вариант.
20 мар 2019 в 7:27
Сделать select id from table limit 1 , если вернет пустой результат, то таблица пустая
Отслеживать
2,805 5 5 золотых знаков 21 21 серебряный знак 38 38 бронзовых знаков
ответ дан 19 мар 2019 в 21:39
Сергей Коновалов Сергей Коновалов
1,266 4 4 серебряных знака 7 7 бронзовых знаков
Вы не могли бы написать по подробнее о предложенном вами способе?
19 мар 2019 в 22:01
По ходу очередной студент, не способный сделать элементарное дз? Я угадал?
19 мар 2019 в 22:14
id в таблице может не быть. Лучше select 1 from table limit 1
20 мар 2019 в 4:01
Понятие «таблица пуста» эквивалентно понятию «количество записей в таблице равно нулю». Следовательно, выполняем запрос
SELECT COUNT(*) AS recordscount FROM tablename
и сравниваем полученное значение единственного поля recordscount единственной записи возвращённого набора с нулём.
Не забываем проверить, не возникло ли в процессе выполнения запроса ошибки (таблица может быть удалена, повреждена, заблокирована, соединение с сервером может «развалиться» и т.п.).
Как быстро проверить существование записи в таблице?
Есть две таблицы, таблица A с огромным количеством данных и пустая таблица Б. Задача записать переданные данные в таблицу Б при условии что одно поле, не существует в таблице А. Сейчас сделан перебор и запрос на каждый элемент в цикле SELECT 1 FROM (`А`) WHERE `поле` = ‘123’ LIMIT 1 . Сделал поле `поле` уникальным индексом, убрал получение данных заменив * на 1. Подскажите как еще можно ускорить этот процесс?
- Вопрос задан более трёх лет назад
- 231 просмотр
Sql-запрос, проверить на пустоту таблицу
Собственно сабж.
На конструкторе класса создается таблица (if not exists) и должна внестись 1 запись, если таблица пуста. Помогите пожалуйста составить такой запрос: «Если таблица пуста, то внести запись».
Вроде нашел в интернете вариант через SELECT, но не работает.
mrlasking
$_GET[‘rich’] or die(‘trying’);
Регистрация 22.05.2012 Сообщения 323
Проверка на пустоту:
$res = mysql_query ("SELECT * FROM `table`"); if (mysql_num_rows ($res) == 0) < echo 'Пусто'; >else
Volly
Well-Known Member
Регистрация 21.03.2012 Сообщения 828
А если так $res = mysql_query («SELECT count(*) FROM `table`»);
CamaroSS
Well-Known Member
Регистрация 21.02.2012 Сообщения 176
Если это для таблицы с потенциально только одной записью, то можно как угодно, иначе
$res = mysql_query («SELECT count(*) FROM `table`»)
Этому будут рады большие InnoDB
$res = mysql_query («SELECT * FROM `table`»);
А этому будут рады все. У нас была такая страничка с поиском, которая «плохо работала». Оказалось, что именно таким способом каждый раз выбиралось все ~15K рядов. А потом ещё фетчились и проверялись по условию
Если рядов много, то можно сделать
SELECT IF(NOT EXISTS(SELECT 1 FROM `table` WHERE 1=1),1,0) AS `empty`
Насчёт поддержки версий не в курсе, вроде везде всё ок.
Насчёт того, чтоб сделать одним запросом, идей нет, кроме как назначить первичный/уникальный ключ и подавать на него одно и то же значение, вставляя запись через INSERT IGNORE.
Как проверить пустая ли таблица sql
Подскажите,как реализовать такое: если таблица БД Учет пустая,то выводим сообщение,а если не пустая,то выводим другое сообщение. Бьюсь целый день и не получается программно это реализовать!
Регистрация: 09.01.2008
Сообщений: 26,238
выполните запрос вида
select count(*) from [Учет]
если вернёт ноль записей — значит, таблица пустая.
Serge_Bliznykov |
Посмотреть профиль |
Найти ещё сообщения от Serge_Bliznykov |
Регистрация: 17.11.2010
Сообщений: 19,042
А на пустоту ли? Может на наличие записи с Код = 1 AND (Дата IS NULL) ?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Пользователь
Регистрация: 06.01.2016
Сообщений: 18
Сообщение от Аватар
А на пустоту ли? Может на наличие записи с Код = 1 AND (Дата IS NULL) ?
Это я выполняю определенное условие при нажатии на кнопку,т.е. если бд пустая,то не выполняю и вывожу сообщение: «БД пустая»,а если есть,то выполняю. Но вот как это реализовать программно,не могу понять.
Регистрация: 17.11.2010
Сообщений: 19,042
Так все таки пустая или отсутствие записи по некоторому условию? Пустая — это вообще ни каких записей, что в #2 и предложено проверять. А это ли нужно проверять?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию